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

时间:2018-03-06 13:19:32

标签: mysql json mysql-5.7

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

from

当我这样做时,这似乎工作正常:

last_page

但是,当我尝试从last_page_url表达式派生next_page_url时,我得到了  pathper_page代替prev_page_urlto,例如:

total

结果

$result

如何使用{"name": "Piotr", "likesMysql": true} 构建一个SELECT json_object( 'name', 'Piotr', 'likesMysql', TRUE ) likesMysql作为属性值的JSON对象?

4 个答案:

答案 0 :(得分: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))
)

答案 1 :(得分:1)

只需跟随,

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

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

答案 2 :(得分:1)

Aniket Bhansali的方法可以简化为:

select json_object(
    'bool_true', (4 mod 2 = 0) is true,
    'bool_false', 0 is true) b;

返回

{"bool_true": true, "bool_false": false}

在mysql 8上测试。

答案 3 :(得分:-1)

SELECT json_object(
   'name', 'Piotr',
   'likesMysql', 4 MOD 2 != 0
)