Bootstrap

关于查找mysql中存储数组的字段的数值

由于一些需求,mysql中可能存在上下级的数值字段,例如:

其中1为一级,104为二级,但是在条件搜索的时候这种数据往往不好搜索

简单的模糊搜索就是下面这种

SELECT * FROM hhit_poc poc
 WHERE 1 = 1 AND poc.device_chs LIKE concat('[1,', '%') order by create_time desc
 LIMIT 15;

但是这种方法很不美观和不实用,这里记录一种新的方法,是针对mysql5.7版本以上的,mysql能对json字段进行一定的搜索,例如,同样的搜索条件

SELECT * FROM hhit_poc poc
 WHERE 1 = 1 and JSON_EXTRACT(poc.device_chs,'$[0]') = 1 order by create_time desc
 LIMIT 15;

 这样更加美观和准确。

;