mysql 使用 FIND_IN_SET 来查询数据
Posted dywangzq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 使用 FIND_IN_SET 来查询数据相关的知识,希望对你有一定的参考价值。
mysql中find_in_set函数很有意思,它的功能是查找以英文逗号隔开的值,我们可以将数据存储类似为1,2,3,4格式。今天我们就来看看在thinkphp中怎样正确地使用find_in_set函数进行数据查询。
在ThinkPHP中, 我们可以使用数组的形式组合查询条件,对于组装find_in_set时,可以有如下写法:
$map[‘_string‘]="FIND_IN_SET(1,tid)";//tid为表字段
还可以组合多个find_in_set查询一起使用:
$map[‘_string‘] = "FIND_IN_SET(1,tid) OR FIND_IN_SET(2,tid) OR FIND_IN_SET(3,tid) OR FIND_IN_SET(4,tid)";
最后生成的sql语句如下所示:
SELECT `id`,`title`,`enname`,`futitle`,`picture`,`content` FROM `tp_content` WHERE `is_recover` = 0 AND `cityid` = 2 AND ( `cate_id` = ‘1‘ OR `cate_pid` = ‘1‘ ) AND ( FIND_IN_SET(1,tid) OR FIND_IN_SET(2,tid) OR FIND_IN_SET(3,tid) OR FIND_IN_SET(4,tid) ) ORDER BY add_time desc,id desc LIMIT 0,10
使用 FIND_IN_SET 可以省下用php切成数组然后在进行匹配的麻烦
以上是关于mysql 使用 FIND_IN_SET 来查询数据的主要内容,如果未能解决你的问题,请参考以下文章
oracle 有没有类似mysql的find_in_set功能
java 中 使用 find_in_set关键字查询mysql,怎么传值?