MySql按顺序排列数组

时间:2017-01-21 00:03:39

标签: php 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循环?

1 个答案:

答案 0 :(得分: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