2017-01-21 52 views
3

我想知道是否有更有效的方式來編寫循環案件。MySql排序的情況下,當數組

$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"; 

不知

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

可能是

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

如果不是我該怎麼做呢?我需要做一些for循環嗎?

回答

4

如果它只是兩個值,那麼你可以使用OR運營商,例如:

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

如果需要使用多個值進行比較,但他們沒有序貫那麼你可以使用IN運營商,例如

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

如果值範圍內,那麼你可以使用BETWEEN,例如:

WHEN (cat_id BETWEEN 21 and 30) THEN -1