[英]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.