可以說我有以下查詢。ORDER BY FIELD()和重複數據
SELECT stringdata FROM table ORDER BY FIELDS(stringdata, 'tg','nk','mg','pl') asc;
出於某種原因,我得到的結果在最底部。我怎樣才能讓查詢結果從'tg'開始,而不是結果中的最後一行?
不僅如此,但有一個在數據不止一個「TG」,我想它是在期望的輸出進行排序:
stringdata
__________
'tg'
'tg'
'tg'
'nk'
'nk'
'mg'
'mg'
'mg'
'pl'
到目前爲止使用ORDER BY Fields()
只是排序的一個實例數據而不是全部。
在查詢中使用desc
而不是asc
按預期工作。我得到'pl'
的第一行上,然後'mg'
,'nk'
等
的問題是,如果我不定義所有可能的領域(StringData是「TG」,「等」)的ASC一直推到底部。雖然我沒有定義的那些是第一個結果。 – Tek
@Tek:那是因爲你沒有定義的那些被認爲具有最低的優先級,所以當訂購'ASC'時,他們往往先到達。 – Balanivash