我想知道是否有更有效的方法来写循环的案例。

$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

如果不是,我该怎么办?我需要做某种循环吗?

最佳答案

如果只有两个值,则可以使用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

07-25 23:13
查看更多