MySQL - JSON - 返回值为true的返回属性

时间:2017-09-05 13:32:50

标签: mysql json

我的表格中有“超级英雄”这样的东西:

name   | attributes
Batman | {"dead": false, "orphan": true, "billionaire": true, "goodboy" : true}

如何返回所有真实属性?

我知道如何检索特定属性的值,例如

select json_extract((SELECT attributes from superheroes where name = 'Batman'),'$.orphan') 

这将返回true,这是正确的。但我需要找到所有属性都是正确的。在MySQL中有没有办法?这只是一个例子,但实际情况有点过于复杂......提前感谢。

1 个答案:

答案 0 :(得分:0)

我认为最接近你想要的是JSON_SEARCH()

SELECT JSON_SEARCH(attributes, 'all', 'true')
FROM superheroes
WHERE name = 'Batman';

但是,要使其工作,值必须是字符串,而不是布尔值,因为JSON_SEARCH将搜索字符串视为LIKE模式以匹配字符串,而不是JSON值。所以JSON必须是:

{"dead": "false", "orphan": "true", "billionaire": "true", "goodboy" : "true"}

DEMO