mysql Ver 14.14使用readline 6.3为debian-linux-gnu(x86_64)分发5.5.60
我有一张桌子" mytable"有12500条记录和这个字段
执行咨询时:
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不匹配。
为什么?
答案 0 :(得分:1)
使用没有group by的聚合函数会对不参与聚合函数的列产生不可预测的结果,并且在组中没有提到..
您可以使用或汇总功能或按
排序 select max(x_id), max(y_id), max(fieldX), max(fieldY)
from mytable;
select max(x_id), y_id, fieldX, fieldY
from mytable
group by y_id, fieldX, fieldY ;
答案 1 :(得分:1)
如果你想要最后一行,你应该做
SELECT *
FROM mytable
ORDER BY x_id DESC
LIMIT 1
您的查询的问题是您从字段中选择MAX值,但另一个是随机值,并且不必与最大值所在的行相关。