find_in_set使用
FIND_IN_SET(str,strList)
- str 要查询的字符串
- strList 字段名,参数以“,”分隔,如(1,2,6,8)
- 查询字段(strList)中包含的结果,返回结果null或记录。
CREATE TABLE `tb_test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `list` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); INSERT INTO `tb_test` VALUES (1, 'name', 'daodao,xiaohu,xiaoqin'); INSERT INTO `tb_test` VALUES (2, 'name2', 'xiaohu,daodao,xiaoqin'); INSERT INTO `tb_test` VALUES (3, 'name3', 'xiaoqin,daodao,xiaohu');
一、原生mysql中使用
SELECT * from tb_test where FIND_IN_SET("daodao",list)
二、tp中使用
1、Db::name('menu')->where('FIND_IN_SET(:id,list)',['id' => $id])->update([$field => $title]); 2、Db::table('think_user')->where('find_in_set(1,sids)')->select();