簡體   English   中英

MySql按順序排列數組

[英]MySql order by case when array

我想知道是否有更有效的方法來編寫案例循環。

$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循環?

如果它只是兩個值,那么你可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM