MySQL中可以使用ORDER BY子句對(duì)查詢結(jié)果進(jìn)行排序。但是,在某些情況下,可能需要進(jìn)行兩次排序。下面介紹兩種方法實(shí)現(xiàn)兩次排序。
方法一:使用子查詢
SELECT * FROM ( SELECT * FROM table_name ORDER BY column_name_1 ASC ) AS t ORDER BY column_name_2 DESC;
先對(duì)所有行按照column_name_1進(jìn)行升序排序,然后將結(jié)果作為子查詢,再按照column_name_2進(jìn)行降序排序。
方法二:使用CASE表達(dá)式
SELECT * FROM table_name ORDER BY CASE WHEN column_name_1 = value_1 THEN column_name_2 ... ELSE column_name_n END DESC;
根據(jù)不同的條件使用不同的排序規(guī)則。例如,當(dāng)column_name_1等于value_1時(shí),使用column_name_2進(jìn)行排序。