【发布时间】:2011-07-07 05:03:01
【问题描述】:
SELECT COUNT(*) FROM area
WHERE ROUND(SQRT(POWER(('71' - coords_x), 2) +
POWER(('97' - coords_y), 2))) <= 17
==> 51
SELECT COUNT(*) FROM area
WHERE ROUND(SQRT(POWER((71 - coords_x), 2) +
POWER((97 - coords_y), 2))) <= 17
==> 22
coords_x 和 coords_y 都是 TINYINT 字段,包含 [1, 150] 范围内的值。通常 MySQL 不关心是否引用了数字.. 但显然在这种情况下它确实如此。
问题只是:为什么?
【问题讨论】:
-
另一个问题是:为什么要将数字视为字符串?
-
我看不出它的原因,但您可以尝试稍微颠倒一下……在 WHERE 子句中选择您要比较的值,然后查看值是什么在这两种情况下?
标签: mysql