MySQL对JSON数据进行IN查询
目录
MySQL对JSON数据进行IN查询
SELECT
字段名
FROM
表名
WHERE
CASE
WHEN JSON_VALID(字段名) THEN JSON_UNQUOTE(字段名 -> '$.字段内JSON的键名称') IN (
'查询条件',
'查询条件2'
)
ELSE null
END
注意点:
1.请根据具体业务情况替换代码的中文注释,并确认存储数据符合JSON格式。
2.MySQL5.7以下版本不支持JSON相关函数,如需按照单一条件 模糊查询 ,可以用
INSTR(要搜索的字符串,子字符串) 函数。
JSON_VALID 用于判断字段是否包含JSON格式数据,不包含数据时,若不使用该函数直接查询会报"Invalid JSON text in argument 1 to function json_extract"错误。
JSON_UNQUOTE 用于去除查询结果的双引号,也可用 REPLACE(要替换的字符串, ‘""’, ‘’) 进行替换。
字段名 -> ‘$.字段内JSON的键名称’
是 JSON_EXTRACT(字段名,’$.字段内JSON的键名称’) 的缩写,返回key对应的value。
6.JSON相关函数介绍推荐以下博客