mysql Ver 14.14 Distrib 5.5.60,用于使用 readline 6.3 的 debian-linux-gnu (x86_64)
我有一张表“mytable”,其中包含 12500 条记录和这些字段
- mytable_id(PRI, auto_increment)
- x_id(整数)
- y_id(整数)
- 字段X(可变字符)
- 字段 Y(varchar)。
执行咨询时:
select max(x_id), y_id, fieldX, fieldY
from mytable;
并返回例如
x_id | y_id | fieldX | fieldY
12121 | 111 | textX | testY
但是执行时:
select y_id, fieldX, fieldY
from mytable
where x_id = 12121;
返回
y_id | fieldX | fieldY
232 | textX | textY
y_id 不匹配。
为什么?
最佳答案
如果你想要最后一行,你应该这样做
SELECT *
FROM mytable
ORDER BY x_id DESC
LIMIT 1
您的查询的问题是您从一个字段中选择 MAX 值,但另一个是随机值,并且与该 Max Value 所在的行无关。
关于Mysql返回有错误的记录——聚合函数MAX(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50452502/