2011-01-16 19 views
0

になる:MySQLの - 条件付きクエリ、私はこのようなクエリを作成したいの文

SELECT *目に見える= 'yes' にT1からAND(販売= 'yes' に、量> 0)

IF

私の目標は、「販売」製品である場合に限り、数量が0より大きい表の行のみを受け取ることです。私はIFとCASE文を試しましたが、これらの結果は整数ではなく文でしかないようです。私はここで立ち往生しています

...

答えて

1
SELECT * FROM t1 WHERE visible='yes' AND ((sale = 'yes' AND quantity > 0) OR sale != 'yes') 
+0

私はこの1つのために複雑に思っていましたが、私のためにそれを整えてくれてありがとう! – klaaz

1

あなたはIF機能

SELECT * 
FROM t1 
WHERE visible='yes' 
    AND IF (sale = 'yes', quantity > 0, 1) 

inthe第三のparamaterが欠落しているが、有効なSQL

2

あなたが彼の元のテキストを読んでいる場合である "受信のみ「販売」製品である場合には、数量が0より大きいテーブルの行だけです。

質問に多少の言い訳があります。前提は次のとおりです。

SALE = 'yes'、QUANTITY> 0およびVISIBLE = 'yes'の項目のみを返します。これは、ユーザーが何を望んであれば

は、のためのSQLは単純です:

SELECT * FROM t1 WHERE sale='yes' AND quantity > 0 AND visible='yes' 

ところで、あなたのDBは、ブール値を(真/偽)の代わりにVARCHARのでははるかにある使用して、多くのデータを保持するために起こっている場合エンジン効率が高く、選択と挿入に時間を節約できます。

+0

私はそれを知っておかげで、この1つは比較的小さいですが。 – klaaz

関連する問題