Python Web ページにデータを提供する次の MySQL クエリがあります。Web ページに曲名のリストがあり、句読点やスペースを無視してアルファベット順に並べたいと考えています。私の MySQL データベースは UTF-8 でエンコードされており、無視する必要のある句読点の一部は、中アポストロフィなどの特殊文字です。
SELECT * FROM Tracks\
JOIN Artists USING (ArtistID)\
JOIN Albums USING (AlbumID)\
JOIN Songs USING (SongID)\
ORDER BY UPPER(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(\
REPLACE(SoName, ' ', ''), /* space */\
',', ''), /* comma */\
'.', ''), /* period */\
':', ''), /* colon */\
';', ''), /* semicolon */\
'!', ''), /* exclamation point */\
'?', ''), /* question mark */\
'\u201c', ''), /* left curly double quote */\
'\u201d', ''), /* right curly double quote */\
'\u2019', ''), /* right curly single quote (apostrophe) */\
'\u2013', ''), /* n-dash */\
'\u2014', ''), /* m-dash */\
'\u2026', '') /* ellipsis */), (SongID), UPPER(AlTitle)
私のREPLACE
クエリでは、スペース、コンマ、ピリオドなどの非特殊文字に対しては完全に機能するようですが、特殊文字をスキップしているようです。
私の推測では、文字を別の形式で記述する必要があります。次のことを試しましたが成功しませんでした:
REPLACE(SoName, '\u2026', '')
REPLACE(SoName, u'\2026', '')
REPLACE(SoName, 0xE280A6, '')
...