2017-01-21 26 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