mysql中select...in...的效率

clear_shadow 2014-04-16 03:33:39
如题,假如有一张表,数据在10W以内。 已知几千条数据的id。然后我要获取到所有id对应的数据的信息。

我是用in来查询还是用很多个or查询效率高呢?还是说有更好的办法。

求助大侠们帮忙
...全文
215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2014-04-16
  • 打赏
  • 举报
回复
用IN就行了。 select * from t where id in (1,2,3,4,5,.....)
clear_shadow 2014-04-16
  • 打赏
  • 举报
回复
引用 8 楼 Wentasy 的回复:
为什么不使用EXISTS替代IN呢?
需求中其实是用过通过主观判断一些别的信息,选中一部分id,然后查询这些id的详细信息。用exists的话,在exists里面还是得用in或者or查询吧~还是说有别的办法
Wentasy 2014-04-16
  • 打赏
  • 举报
回复
为什么不使用EXISTS替代IN呢?
clear_shadow 2014-04-16
  • 打赏
  • 举报
回复
引用 4 楼 wwwwb 的回复:
在ID上建立索引 用IN OR 将数据存入表中,用INNER JOIN取出
在id上已经建立了索引。请问我只想通过id列表取出的话,是不是就不用再存入了。只需通过in或者是or取出就行了?您说的办法我没看明白。 还有一个就是,mysql中,select in后面跟的列表有上限么?
zhouda829829 2014-04-16
  • 打赏
  • 举报
回复
如果ID上有索引 select in 效率应该可以的
z5wjz 2014-04-16
  • 打赏
  • 举报
回复
in的列表是有上限的吧,还是用连接比较保险
wwwwb 2014-04-16
  • 打赏
  • 举报
回复
在ID上建立索引 用IN OR 将数据存入表中,用INNER JOIN取出
benluobo 2014-04-16
  • 打赏
  • 举报
回复
id如果是key , 就没问题 效率会很好
clear_shadow 2014-04-16
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
举例说明要求,在ID上建立索引
比如说有5万条数据,我把数据的id暴露给用户,用户通过一些别的信息来确定出一部分数据id,我需要通过这部分id来查询这部分id对应的数据的信息。 我想有没有比用select in更有效率的方式呢
wwwwb 2014-04-16
  • 打赏
  • 举报
回复
举例说明要求,在ID上建立索引

56,679

社区成员

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

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