如何使用布尔值在 MySql 中创建一个 JSON 对象?
How to create a JSON object in MySql with a boolean value?
我希望我的 MySql 查询 return 一个 JSON 对象,如下所示:
{"name": "Piotr", "likesMysql": true}
当我这样做时,这似乎工作正常:
SELECT json_object(
'name', 'Piotr',
'likesMysql', TRUE
)
然而,当我尝试从 if
表达式中导出 likesMysql
时,我得到
0
和 1
而不是 false
和 true
例如:
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(4 MOD 2 = 0, TRUE, FALSE)
)
结果
{"name": "Piotr", "likesMysql": 1}
如何使用 json_object
构造一个 JSON 对象,该对象具有 true
或 false
作为 属性 值?
跟着下面就行,
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(5 MOD 2 = 0, TRUE, FALSE) is true
)
希望你能得到想要的结果:)
这好像是a bug in MySql。
您可以使用 cast(true as json)
解决此问题,例如:
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(4 MOD 2 = 0, cast(TRUE as json), cast(FALSE as json))
)
Aniket Bhansali 的方法可以简化为:
select json_object(
'bool_true', (4 mod 2 = 0) is true,
'bool_false', 0 is true) b;
哪个returns
{"bool_true": true, "bool_false": false}
测试于 mysql 8.
SELECT json_object(
'name', 'Piotr',
'likesMysql', 4 MOD 2 != 0
)
我希望我的 MySql 查询 return 一个 JSON 对象,如下所示:
{"name": "Piotr", "likesMysql": true}
当我这样做时,这似乎工作正常:
SELECT json_object(
'name', 'Piotr',
'likesMysql', TRUE
)
然而,当我尝试从 if
表达式中导出 likesMysql
时,我得到
0
和 1
而不是 false
和 true
例如:
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(4 MOD 2 = 0, TRUE, FALSE)
)
结果
{"name": "Piotr", "likesMysql": 1}
如何使用 json_object
构造一个 JSON 对象,该对象具有 true
或 false
作为 属性 值?
跟着下面就行,
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(5 MOD 2 = 0, TRUE, FALSE) is true
)
希望你能得到想要的结果:)
这好像是a bug in MySql。
您可以使用 cast(true as json)
解决此问题,例如:
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(4 MOD 2 = 0, cast(TRUE as json), cast(FALSE as json))
)
Aniket Bhansali 的方法可以简化为:
select json_object(
'bool_true', (4 mod 2 = 0) is true,
'bool_false', 0 is true) b;
哪个returns
{"bool_true": true, "bool_false": false}
测试于 mysql 8.
SELECT json_object(
'name', 'Piotr',
'likesMysql', 4 MOD 2 != 0
)