【发布时间】:2018-01-16 14:01:28
【问题描述】:
查询中包含“OR”语句的项目数量是否有限制? 查询的包大小有限制吗?
例子:
select * from tablename where id = 2 OR id =4 OR ID = 9;
还有什么替代选项?
【问题讨论】:
-
你可以用 in 代替 or。据我所知,限制是查询的长度
标签: mysql performance limit
查询中包含“OR”语句的项目数量是否有限制? 查询的包大小有限制吗?
例子:
select * from tablename where id = 2 OR id =4 OR ID = 9;
还有什么替代选项?
【问题讨论】:
标签: mysql performance limit
更好的选择是:
SELECT * FROM tablename WHERE id IN(2, 4, 9);
关于大小限制,Oracle等其他数据库在IN中可以放入的数据数量限制为1000,但MySQL的限制取决于max_allowed_packet的值.
【讨论】:
IN 子句中看到了 70K 个数字(在 MySQL 中)。