我有color
列的MySQL表中,其類型是ENUM('RED', 'YELLOW', 'MY_COLOR', 'BLACK')
,另一個name
列的類型是VARCHAR(30)
。如何對MySQL數據庫中的ENUM列進行排序?
我想獲得的所有錶行按照下面的順序:第一
YELLOW
行,由name
排序最後RED
行,由name
- 在中間排序,所有其他行,按排序
name
是否有可能在1查詢中進行這種排序?
我有color
列的MySQL表中,其類型是ENUM('RED', 'YELLOW', 'MY_COLOR', 'BLACK')
,另一個name
列的類型是VARCHAR(30)
。如何對MySQL數據庫中的ENUM列進行排序?
我想獲得的所有錶行按照下面的順序:第一
YELLOW
行,由name
排序最後RED
行,由name
name
是否有可能在1查詢中進行這種排序?
用途:
ORDER BY CASE color
WHEN 'YELLOW' THEN 1
WHEN 'RED' THEN 3
ELSE 2
END, name
這工作得很好與MySQL。但是對於h2數據庫,它會顯示一個錯誤 引起的:org.h2.jdbc.JdbcSQLException:按表達式排序「CASEWHEN((color ='YELLOW'),1,CASEWHEN((color ='RED'),3))」在這種情況下必須在結果列表中; SQL語句:
爲避免出現錯誤,請在select子句中添加stmt「CASEWHEN((color ='YELLOW'),1,CASEWHEN((color ='RED'),3))」。
非常感謝! – 2010-10-19 04:07:31