如果我有一个像这样的 mysql 查询:
SELECT * FROM table1 WHERE id IN(1,2,3,4) LIMIT 2
mysql 会从表中返回 id 为 1 和 2 的行,或者 id 为 1、2、3、4 的任意 2 个随机行吗?
最佳答案
我不知道你的表结构、记录顺序和索引,所以我无法预测最终结果。
但是,对于这个确切的查询,除非你有一些奇怪的存储引擎随机化(不是我所知道的任何常见的 myslq 引擎),否则它将始终是结果集中的前两个记录。除非您更改表结构或记录,否则结果集应该始终相同。查询优化器将始终计划和执行相同的内容,除非索引已更改或这些索引的相对基数已更改。
关于mysql - 将 IN 与 LIMIT 一起使用时输出是随机的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13156771/