mysql - 将 IN 与 LIMIT 一起使用时输出是随机的吗?

标签 mysql

如果我有一个像这样的 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/

相关文章:

mysql - 为 MySQL 上的数据加载禁用安全权限

mysql - ColdFusion/mySQL - 引号和撇号

mysql - 如何在mysql中间表中搜索

mysql - 为什么MySQL会在非空字段中插入空白数据

带有 JOIN 的 MySQL UPDATE 意外地更新了表中的每一行

mysql - Like函数包含空格作为mysql中的字符之一

php - 有人可以帮助找出这个 PHP 文件中语句的问题吗?

mysql - 如何在mysql的if语句中使用strcmp?

mysql - 汽车提交带有图像的表格

mysql - 计算具有特定条件的行并仍然显示所有行