排序我有一个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