mysql 字段为多个值怎么用in

mysql 字段为多个值怎么用in,第1张

1、创建mysql测试表,create table test_city(cityid varchar(20))

2、插入测试数据,

insert into test_city values(1)

insert into test_city values('1,2,3')

insert into test_city values('1,2,3,4')

insert into test_city values(2)

insert into test_city values(3)

3、编写sql,查询cityid为3的记录,

select * from test_city where cityid in ('1','2','3','4','5','6')

4、编写sql,查询cityid为'1,2,3'的记录,

select * from test_city where cityid in ('1,2,3')

mysql的in条件查询,是括号里拼接逗号相隔的字串,这个字长里的个数还有限制,网上的说法是1000个,为了避免超出该范围,可专门封装一个方法 1.使用exists写法替代in写法,exists写法是使用条件查询替代in写法里的一长串字串,这个有时候没法使用,比如使用第三方接口查学校一年级2千个学生的考试成绩,你只知道这些学生的id,没有更多的关联条件 2.使用or的写法,将in条件过长的字串拆开,mysql支持以下写法: 方法封装: 测试效果:

mysqlin元素过多导致全表扫描效率低。如果in里的参数过多,mysql可能会放弃走索引,进而进行全表扫描,影响效率。这种情况可以把in里的参数拆分,使得sql重新走上索引,多个结果走索引后再合并,也比全表扫描快。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7404707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存