有时候,我们需要mysql查询多个id的语句,那么:mysql如何同时查询多个id呢?多条语句直接连接,还是怎么的?其实,非常的简单,mysql已经提供了相关的字符串函数与比较函数,如下:
1、INSTR() 返回第一次出现的子串的索引
2、FIND_IN_SET() 返回第二个参数中第一个参数的索引(位置)
3、IN() 一个值是否在一组值内
我们完全可以通过上面延伸得到"MySQL查询多个id"的方法,具体如下:
MySQL查询多个id 第一种方法:
查询article表 id=2, id=3, id=5 的数据
SELECT * FROM `article` WHERE INSTR(CONCAT(',','2,3,5',','),CONCAT(',',id,','))>0;
MySQL查询多个id 第二种方法:
查询article表 id=2, id=3, id=5 的数据
SELECT * FROM `article` WHERE FIND_IN_SET(id,'2,3,5');
MySQL查询多个id 第三种方法:
查询article表 id=2, id=3, id=5 的数据
SELECT * FROM `article` WHERE IN('2','3','5');
总结:
具体个人应该用哪一种?请根据自己的情况来。像我这里,传过来接收的参数是一个类似于:'1,2,3,4,5,6' 的字符串,这种情况直接用 IN 是无效的,需要把字符串分割再重新组装。