2016-12-16 86 views
0
SELECT * FROM salers WHERE comm IN (0.12, 0,13, 0.15); 

查詢返回空集,而其他查詢返回值。我在哪裏犯錯?IN小數值的mysql

+1

是什麼'comm'列的數據類型? –

+1

錯字?你想要一個0到13之間的逗號嗎? – jarlh

+0

郵政 'COMM' 列中的值和數據類型 – Mansoor

回答

0

你的錯誤是在:0,13

更改爲:

SELECT * FROM salers WHERE comm IN (0.12, 0.13, 0.15); 
2

「分數」 值被表示或者作爲定點值(decimal)或浮點值。後者在平等運作時非常麻煩。

所以,除了逗號的錯誤,如果commdoublefloat,這可能是危險的。您可能會發現這工作得更好:

where cast(comm as decimal(10, 2)) in (0.12, 0.13, 0.15) 

或者,最好,你可以找一個範圍:

where comm > 0.11 and comm < 0.16 
+0

將值更改爲十進制,IN工作。謝謝大家。價值觀的答案真的很有價值。 –