我希望我的MySql查询返回一个如下所示的JSON对象:
{"name": "Piotr", "likesMysql": true}
当我这样做时,这似乎工作得很好:
SELECT json_object(
'name', 'Piotr',
'likesMysql', TRUE
)
然而,当我试图从likesMysql
表达式推导if
时,我得到0
和1
而不是false
和true
例如:
SELECT json_object(
'name', 'Piotr',
'likesMysql', if(4 MOD 2 = 0, TRUE, FALSE)
)
结果是
{"name": "Piotr", "likesMysql": 1}
如何使用json_object
构造一个将true
或false
作为属性值的JSON对象?
只需跟随,
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))
)