簡體   English   中英

自定義MYSQL自定義排序順序

[英]Custom MYSQL Custom Sort Order

我有一個簡單的媒體庫,可以根據代碼示例中的日期對相冊進行排序。 在這些專輯中,我有一張刪除媒體的“Trash”專輯。 如何保留ORDER BY albums.date DESC但始終將“Trash”專輯設置為訂單中的最后一個? 專輯位於“標題”列中,並始終稱為“垃圾”。

謝謝你的幫助...

$query = mysql_query("SELECT albums.*,photos.path FROM albums LEFT JOIN photos ON albums.albumCover=photos.id WHERE albums.user='$siteUserID' ORDER BY albums.date DESC");

您可以利用ORDER BY子句上的CASE

SELECT...
FROM...
WHERE..
ORDER BY   (CASE 
               WHEN albums.title = 'TRASH'
               THEN 1
               ELSE 0
           END ) ASC, albums.date DESC

您需要使用ORDER BY CASETrash值分配更高的數字,因此比其他值更晚排序。 值不是Trash得到零, Trash得到1.零首先排序!

SELECT
  albums.*,
  photos.path
FROM 
  albums
  LEFT JOIN photos ON albums.albumCover=photos.id 
WHERE albums.user='$siteUserID' 
ORDER BY
  CASE WHEN albums.title = 'Trash' THEN 1 ELSE 0 END,
  /* Then suborder the zeros and ones by date */
  albums.date DESC

暫無
暫無

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

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