MySQL中的ORDER BY語句用于對查詢結果集進行排序。它可以按照指定的列或表達式來排序。如果沒有指定排序方式,默認按照升序排序。
如果希望使用自定義規則來排序,可以在ORDER BY語句中使用表達式或函數。下面是一個使用函數進行排序的例子:
SELECT name, age FROM students ORDER BY CASE WHEN name = '張三' THEN 1 WHEN name = '李四' THEN 2 ELSE 3 END, age ASC;
以上代碼將會按照自定義規則對students表中的數據進行排序。如果姓名是張三,則排在最前面;如果是李四,則排在第二個;如果是其他人,則按照年齡升序排序。
另一個常見的使用自定義排序的場景是針對枚舉類型的列。例如,一個user表中的gender列可能只包含男或女兩個選項。在排序時,如果希望先按照男或女排序,再按照其他條件排序,則可以使用如下代碼:
SELECT name, gender, age FROM users ORDER BY CASE gender WHEN '男' THEN 1 WHEN '女' THEN 2 END, age DESC;
以上代碼將會先按照男、女的順序排序,再按照年齡降序排序。