mysql的查询sql语句中in关键字的选项中最多可以带多少个

lxraiyl 2014-10-25 11:14:02
假设现在有一个学生表Student,有两个字段:学号stu_id、姓名stu_name
我想查询学号在某一个范围内的所有学生信息,SQL语句如下:

SELECT * FROM student WHERE stu_id IN ( 'id1', 'id2', ....);

我想知道的是,IN关键字括号内最多能够有多少个选项
...全文
29075 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
若未 2017-05-19
  • 打赏
  • 举报
回复
最多2100个 我是今天刚出的错
lxraiyl 2014-10-31
  • 打赏
  • 举报
回复
引用 9 楼 jielovehuan 的回复:
如果数据量很大的话,可以用exists代替。
exists没有限制么
jielovehuan 2014-10-31
  • 打赏
  • 举报
回复
引用 10 楼 lxraiyl 的回复:
[quote=引用 9 楼 jielovehuan 的回复:] 如果数据量很大的话,可以用exists代替。
exists没有限制么[/quote] 没有
jielovehuan 2014-10-30
  • 打赏
  • 举报
回复
如果数据量很大的话,可以用exists代替。
lxraiyl 2014-10-29
  • 打赏
  • 举报
回复
引用 7 楼 roundman 的回复:
in里面太多参数的话,非常影响效率
可是有时候再做查询时会遇到in中选项很多的问题呀,比如说查找某一个集合范围内所有的学生信息
lxraiyl 2014-10-26
  • 打赏
  • 举报
回复
引用 5 楼 ACMAIN_CHM 的回复:
IN () 中没有限制。仅受SQL最长长度约束。
多谢,顺便问一句,SQL最长是多少,哪个参数可以设置呢
roundman 2014-10-26
  • 打赏
  • 举报
回复
in里面太多参数的话,非常影响效率
lxraiyl 2014-10-25
  • 打赏
  • 举报
回复
引用 1 楼 lzd_83 的回复:
没有限制,为什么不使用 select * from student wher stu_id in('id1','id2',....); select * from student where stu_id between 学号 and 学号2;
啊,in关键字里的选项个数没有限制么
Rotel-刘志东 2014-10-25
  • 打赏
  • 举报
回复
没有限制,为什么不使用 select * from student wher stu_id in('id1','id2',....); select * from student where stu_id between 学号 and 学号2;
ACMAIN_CHM 2014-10-25
  • 打赏
  • 举报
回复
IN () 中没有限制。仅受SQL最长长度约束。
rucypli 2014-10-25
  • 打赏
  • 举报
回复
mysql --help | grep max-allowed-packet
rucypli 2014-10-25
  • 打赏
  • 举报
回复
受max_allowed_packet 这个参数的限制

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧