MySQL查询多个id三种方法

有时候,我们需要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 是无效的,需要把字符串分割再重新组装。

 

关于哪种效率更高?请查看:

MySQL函数:IN()、INSTR()、FIND_IN_SET()效率比较

    A+
发布日期:2020年08月25日 16:13:42  所属分类:MySQL
最后更新时间:2021-07-07 14:48:59
付杰
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 39.0元
  • 市场价:39.0元
  • ¥ 59.0元
  • 市场价:99.0元
  • ¥ 1.0元
  • 市场价:9.9元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: