[英]MYSql ORDER BY CASE 1st CASE should order by array of IDs
[英]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.