MySQL查询某个字段包含某个值--FIND_IN_SET
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL查询某个字段包含某个值--FIND_IN_SET相关的知识,希望对你有一定的参考价值。
参考技术A 文章中有标签字段(label),存的是标签ID字符串。现在想在文章列表进行筛选,根据标签筛选出对应标签的文章
但是不能用like。SO,FIND_IN_SET函数就大显身手了
FIND_IN_SET(str,strlist)
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8,10,22)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
倘若想搜索标签ID为2的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('2',label)
倘若想搜索标签ID为3的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('3',label)
查询数据库中指定字段中存储的json数据是不是包含某个值
参考技术A 正常来说,使用mysql的JSON_EXTRACT()处理函数就可以了,例如:SELECT JSON_EXTRACT('"id":"3"', "$.id")
;可以查询出id字段中包含id为3的,但是会有一个问题,当mysql的使用工具navicat版本过低时,不支持转码或者查询,会报错,这是需要在JSON_EXTRACT外面套一层JSON_UNQUOTE 即可正常使用,语句如下:
SELECT JSON_UNQUOTE(JSON_EXTRACT('"id":"3"', "$.id"));
以上是关于MySQL查询某个字段包含某个值--FIND_IN_SET的主要内容,如果未能解决你的问题,请参考以下文章