我的表格中有“超级英雄”这样的东西:
name | attributes
Batman | {"dead": false, "orphan": true, "billionaire": true, "goodboy" : true}
如何返回所有真实属性?
我知道如何检索特定属性的值,例如
select json_extract((SELECT attributes from superheroes where name = 'Batman'),'$.orphan')
这将返回true,这是正确的。但我需要找到所有属性都是正确的。在MySQL中有没有办法?这只是一个例子,但实际情况有点过于复杂......提前感谢。
答案 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"}