2011-01-28 20 views
4
SELECT COUNT(*) FROM planets 
WHERE ROUND(SQRT(POWER(('71' - coords_x), 2) + 
       POWER(('97' - coords_y), 2))) <= 17 

==> 51爲什麼此SQL查詢中的單引號會影響計算?

SELECT COUNT(*) FROM planets 
WHERE ROUND(SQRT(POWER((71 - coords_x), 2) + 
       POWER((97 - coords_y), 2))) <= 17 

==> 22

coords_xcoords_y和是含有在[1,100]範圍內的值都TINYINT字段。通常MySQL不關心數字是否被引用,但顯然它在這種情況下。問題是:爲什麼?

+0

永遠不要依賴隱式類型轉換。使用適用於數據類型的文字。 – 2011-01-28 23:13:28

回答

4

我有點生疏的MySql的,但<=字符串去詞典排序,而不是數字即'150' < '17'

+0

更改比較引號不會影響結果;它是由引用的'71'和'97'引起的。編輯我的問題。 – ThiefMaster 2011-01-28 22:46:45

相關問題