[英]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 CASE
為Trash
值分配更高的數字,因此比其他值更晚排序。 值不是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.