2017-01-21 11 views
3

ケースのループを書くより効率的な方法があるかどうかを知りたいと思います。私はそれについてどのように行くことができない場合MySqlの配列を配列の場合

WHEN cat_id = 24 THEN -1 
WHEN cat_id = 26 THEN -1 

WHEN cat_id = IN(24,26) THEN -1 

をすることができれば

$search = "ORDER BY CASE WHEN created_by = :created_by THEN -1            
      WHEN cat_id = 24 THEN -1 
      WHEN cat_id = 26 THEN -1 
      ELSE created_at END LIMIT :limit, :perpage"; 

は、私が疑問に思いますか?私は何らかの種類のループを作る必要がありますか?for

答えて

4

それはちょうど2つの値だならば、あなたは、例えば、あなたが複数の値と比較する必要があるが、彼らは連番のでないなら、あなたはIN演算子を使用することができますORオペレータ、例えば:

WHEN (cat_id = 24 or cat_id = 26) THEN -1 

を使用することができます

WHEN (cat_id IN (24, 26)) THEN -1 

値が範囲内にある場合、あなたはBETWEENを使用することができ、例えば:

WHEN (cat_id BETWEEN 21 and 30) THEN -1