gpt4 book ai didi

MySQL - JSON - 返回值等于 true 的属性

转载 作者:行者123 更新时间:2023-11-30 21:53:52 24 4
gpt4 key购买 nike

我的表“superheroes”中有这样的东西:

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

如何返回所有为真的属性?

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

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

这将返回 true,这是正确的。但我需要找到所有真实的属性。 MySQL 中有方法吗?这只是示例,但实际情况有点太复杂了...在此先感谢。

最佳答案

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

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

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

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

DEMO

关于MySQL - JSON - 返回值等于 true 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46056319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com