3

好的,我从我的一台 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 字段的两个不同结果。第一个查询,返回一个小数字。第二个查询返回我期望的内容以及两个查询在其他服务器上返回的内容。

我不知道该如何回应?这是服务器配置问题还是预期行为?

提前感谢您提供的任何帮助。

4

1 回答 1

0

你的字段的数据类型是浮动的吗?在浮点比较中可能会发生一些奇怪的事情。

于 2012-12-18T20:46:11.703 回答