好的,我从我的一个mysql服务器看到了奇怪的查询行为。我在具有相同数据的三台不同服务器上运行以下两个查询。
SELECT t1.Field1, t1.Field2, t1.Field3,
(SELECT t2.Field1
FROM thetable AS t2
WHERE Field2=t1.Field2 AND Field3=t1.Field3 AND t2.Field1>t1.Field1
ORDER BY Field1
LIMIT 1) AS MinimumResult
FROM thetable AS t1
WHERE t1.UserID=5;
SELECT t1.Field1, t1.Field2, t1.Field3,
(SELECT min(t2.Field1)
FROM thetable AS t2
WHERE Field2=t1.Field2 AND Field3=t1.Field3 AND t2.Field1>t1.Field1) AS MinimumResult
FROM thetable AS t1
WHERE t1.UserID=5;
在三个服务器中的两个服务器上,两个查询都返回相同的结果。第三,我得到了MinimumResult字段的两个不同结果。第一个查询,返回一个小数字。第二个查询返回我期望的内容以及两个查询在其他服务器上返回的内容。
我不确定如何回应这个?这是服务器配置问题还是预期的行为?
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
你的字段的数据类型是浮动的吗?在浮动比较中可能会发生一些奇怪的事情。