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

クエリは、他のクエリが値を返す間に空のセットを返します。ここで私はどこで間違いをしますか?小数点以下の値を持つmysqlのクエリ

+1

'comm'列のデータ型は何ですか? –

+1

Typo?カンマを0〜13にしますか? – jarlh

+0

投稿 'comm'列の値とデータ型 – Mansoor

答えて

0

あなたの間違いである:0.13

変更するには:

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

"分数" の値は固定小数点値(decimal)として、または浮動小数点値のいずれかとして表されています。後者は、等価操作で使用すると非常に面倒です。

commdoubleまたはfloatの場合、カンマで間違えられることに加えて、これは危険です。あなたは、これがうまく機能することを見つけることがあります。

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

または、好ましくは、あなたが範囲を探すことができます。

where comm > 0.11 and comm < 0.16 
+0

10進数に変更され、INが機能しました。みんなありがとう。値の答えは本当に貴重でした。 –

関連する問題