排序我有一個MySQL表,這些行:的MySQL與符號第一個字母
¡Hola!
¿Qué tal?
Fine
Hello
Adiós
How are you?
我怎樣才能對它們進行排序,獲得這樣的結果:
Adiós
Fine
Hello
¡Hola!
How are you?
¿Qué tal?
我想讓MySQL忽略非字母數字字符。
可以快速完成此操作,而無需創建具有簡化值的新列?
排序我有一個MySQL表,這些行:的MySQL與符號第一個字母
¡Hola!
¿Qué tal?
Fine
Hello
Adiós
How are you?
我怎樣才能對它們進行排序,獲得這樣的結果:
Adiós
Fine
Hello
¡Hola!
How are you?
¿Qué tal?
我想讓MySQL忽略非字母數字字符。
可以快速完成此操作,而無需創建具有簡化值的新列?
不幸的是,這在MySQL中是一個臭名昭着的痛苦。
見Can MySQL replace multiple characters?
試試這個:
ORDER BY replace(replace(phrase,'¿',''),'¡','')
從您的短語,因爲它們的排序中刪除西班牙語前綴標點符號。有人希望MySQL有一個REGEXP_REPLACE函數。
至於性能,你應該沒有ORDER BY函數,除非你有大量的短語。幾十個,沒問題。
我有大約30,000個短語(電影名稱),我的服務器必須處理每秒100+個請求的峯值。我相信最好的方法是創建一個刪除符號的新列。 – Peter
我同意,如果你在這個規模工作。但是你可能想看看全文索引。 –
刪除符號後需要什麼排序?英語?西班牙語嗎?另一個? – gbn
我使用的是UTF8西班牙語整理 – Peter
可能出現的字符可能會出現 – Peter