2011-06-20 2 views
1

でレコードを取得する方法ではなく、これらの三つの条件の1つの条件のみでレコードを取得する方法はありますがあります。 -つの条件

select * from product 
where price != '' and price != 0 and price is not null 

価格列のDDLがあるprice varchar(15) default null

+1

をあなたは 'varchar'で' price'を(...おそらく数値である)を格納しているのはなぜ? – lonesomeday

+0

実際に私は10Rs、10usdなどの価格を格納しています – Bajrang

+0

あなたはその意思決定を再考する必要があります... – lonesomeday

答えて

1

あなたが」

select * from product 
where price > '' 

あるいは

おそらくより良い:条件の長さを懸念し再、あなたはこれを試みることができます
select * from product 
where price 
+0

価格のないすべてのレコードを取得しますが、上記の例では価格を持つすべてのレコードを取得します。 :) – Bajrang

+0

@ J.J。あなたはそう言うためにデータベースを知っている必要があります:) - 私は最初の部分はとにかくあなたが求めていたものではないと思います。私はその質問を編集した。 – hakre

0

あなたは価格、数値タイプにすると、デフォルトのため、NOT NULLで、あなたがさて、空の文字列はfalseと評価だけ!= 0

4

をチェックして逃げることができた場合は、0が偽とNULL評価さを評価偽として、これは動作するはずです:

SELECT * FROM product WHERE price;

+0

if条件では動作しませんか?価格と同じように(価格、価格、 '該当なし')、私はどこにチェックインしていない..? – Bajrang

+0

それはあなたの問題の原因ではないが、他の場所と同様に条件で動作しますが、価格の大きなPですか?私は 'SELECT *、IF(price、price、 'N/A')AS Price'のようなクエリを実行しているとし、' $ result ['price'] 'を使用しようとしていると想像します... – cypher

+0

いいえ、いくつかの誤解があり、条件が合っていれば、私は今チェックしませんでしたか?そして、どこの句で働いて、しかし、私はそれを書く価格> ''その作業...? hakreが言うように... – Bajrang