【发布时间】:2020-10-27 03:38:29
【问题描述】:
我有一个包含 json 数组的列 (column_metadata) 的表
[{
"ORDER": -1,
"READONLY": false,
"COLUMNNAME": "id",
"COLUMNTYPE": "int",
"FILTERABLE": false,
"SUMMARYVIEW": false,
"WHITELISTED": false
},
{
"ORDER": -1,
"READONLY": true,
"COLUMNNAME": "name",
"COLUMNTYPE": "varchar",
"FILTERABLE": true,
"SUMMARYVIEW": true,
"WHITELISTED": true
},
{
"ORDER": -1,
"READONLY": false,
"COLUMNNAME": "description",
"COLUMNTYPE": "varchar",
"FILTERABLE": true,
"SUMMARYVIEW": true,
"WHITELISTED": true
}]
我正在尝试获取所有COLUMNNAME 列表,其中WHITELISTED 为真。
我得到了select json_extract(column_metadata, '$[*].COLUMNNAME') from myTable,它返回了所有以逗号分隔的列名。
但是,当我添加 where 子句时
select json_extract(column_metadata, '$[*].COLUMNNAME') from myTable
WHERE json_extract(column_metadata, '$[*].WHITELISTED') = true;
它不返回任何东西。我们如何用 json_extract 构造 where 子句?
编辑:我使用的是 MySQL 5.7,所以 JSON_TABLE() 不可用
【问题讨论】:
标签: mysql sql mysql-5.7 mysql-json