我想知道是否有更有效的方法来编写案例循环。
$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
循环?
答案 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