如何使用布尔值在MySql中创建JSON对象?

问题描述 投票:0回答:2

我希望我的MySql查询返回一个如下所示的JSON对象:

{"name": "Piotr", "likesMysql": true}

当我这样做时,这似乎工作得很好:

SELECT json_object(
    'name', 'Piotr',
    'likesMysql', TRUE
)

然而,当我试图从likesMysql表达式推导if时,我得到01而不是falsetrue例如:

SELECT json_object(
    'name', 'Piotr',
    'likesMysql', if(4 MOD 2 = 0, TRUE, FALSE)
)

结果是

{"name": "Piotr", "likesMysql": 1}

如何使用json_object构造一个将truefalse作为属性值的JSON对象?

mysql json mysql-5.7
2个回答
1
投票

只需跟随,

SELECT json_object( 'name', 'Piotr', 'likesMysql', if(5 MOD 2 = 0, TRUE, FALSE) is true )

希望你得到理想的结果:)


3
投票

这似乎是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))
)
© www.soinside.com 2019 - 2024. All rights reserved.