MySql 按大小写排序

Kat*_*ler 3 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";
Run Code Online (Sandbox Code Playgroud)

我怀疑是否

WHEN cat_id = 24  THEN -1 
WHEN cat_id = 26  THEN -1 
Run Code Online (Sandbox Code Playgroud)

可能

WHEN cat_id = IN(24,26) THEN -1
Run Code Online (Sandbox Code Playgroud)

如果不是,我该怎么办?我必须做某种for循环吗?

Dar*_*hta 5

如果它只是两个值,那么您可以使用OR运算符,例如:

WHEN (cat_id = 24 or cat_id = 26)  THEN -1
Run Code Online (Sandbox Code Playgroud)

如果您需要与多个值进行比较但它们不是顺序的,那么您可以使用IN运算符,例如

WHEN (cat_id IN (24, 26))  THEN -1
Run Code Online (Sandbox Code Playgroud)

如果值在范围内,则可以使用BETWEEN,例如:

WHEN (cat_id BETWEEN 21 and 30)  THEN -1
Run Code Online (Sandbox Code Playgroud)