MySQL 分組排序 固定組先顯示的實現方法
在MySQL中,我們常常需要對數據進行分組排序的操作,在分組排序中,如果需要固定一些組先顯示,MySQL提供了兩種方式。
方法一:
通過CASE WHEN語句實現
通過該方法,我們可以在查詢中先利用CASE WHEN語句給需要固定先顯示的組打上標記,在根據標記和其他字段進行排序。
例如:
SELECT name,amount,
CASE name
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'C' THEN 3
ELSE 4
END AS sort_tag
FROM table
ORDER BY sort_tag,amount DESC;
以上語句中,我們在SELECT語句中使用CASE WHEN語句,給name進行打標記,然后按照sort_tag和amount進行排序。
方法二:
通過UNION語句實現
通過該方法,我們可以在查詢中使用UNION語句,先查詢出需要先顯示的組,然后再查詢其他的組。
例如:
(SELECT name,amount
FROM table
WHERE name='A'
ORDER BY name,amount DESC)
UNION ALL
(SELECT name,amount
FROM table
WHERE name!='A'
ORDER BY amount DESC);
以上語句中,我們利用UNION語句將兩個SELECT語句合并起來,先查詢出name='A'的組,并按照name和amount進行排序,然后再查詢其他的組,并按照amount進行排序。
無論使用哪種方法,MySQL都能夠快速而方便的完成分組排序 固定組先顯示的操作。
下一篇3306 mysql