如何在mysql中執行區分重音但不區分大小寫的utf8搜索? Utf8_bin區分大小寫,而utf8_general_ci不區分變音。是否可能在mysql中對區分重音和不區分大小寫的utf8整理?
5
A
回答
2
似乎沒有一個因爲case sensitivity is tough to do in Unicode。
有一個utf8_general_cs
整理,但它似乎是實驗性的,並根據this bug report,不使用LIKE時所期望的。
如果您的數據僅包含西方元音變音(即包含在ISO-8859-1中的元音變音),您可能可以將搜索操作整理到latin1_german2_ci
或創建一個單獨的搜索欄(具體排序規則根據this page重音敏感; latin1_general_ci
可能也是如此,我不知道,現在不能測試)。
2
如果你想從不同的「咖啡」,「咖啡館」 您可以使用:
Select word from table_words WHERE Hex(word) LIKE Hex("café");
這樣,它會返回「咖啡廳」。
否則,如果你使用:
Select word from table_words WHERE Hex(word) LIKE Hex("cafe");
它將返回咖啡廳。 我正在使用latin1_german2_ci整理。
0
您可以使用「hex
」使搜索區分變音。然後簡單地添加lcase以使其不再區分大小寫。所以這會給:
SELECT name FROM people WHERE HEX(LCASE(name)) = HEX(LCASE("René"))
你確實把所有的索引都扔出了窗口。如果你想避免做一個全表掃描,你有「名」的索引,還搜索了同樣的事情,沒有十六進制和LCASE:
SELECT name FROM people WHERE name = "René" and HEX(LCASE(name)) = HEX(LCASE("René"))
這樣,指數的「name
」將僅用於查找例如「René
」和「Rene」行,然後與「hex
」的比較只需要在這兩行而不是整個表上進行。
+0
如果你想要案例摺疊,但重音敏感,請在http://bugs.mysql.com提出請求。 –
相關問題
- 1. 如何串用不區分大小寫,不區分重音
- 2. php,mysql:比較字符串 - 區分重音和不區分大小寫
- 3. 如何確定MySQL整理是否區分大小寫?
- 4. MySQL不區分大小寫
- 5. MySQL表名是否區分大小寫?
- 6. 不區分大小寫utf8 select
- 7. URL中的UTF8組件,是否應區分大小寫?
- 8. 尋找不區分大小寫MySQL的整理,其中「一」!=「A」
- 9. Lucene如何區分大小寫和不區分大小寫
- 10. 爲什麼區分大小寫和不區分大小寫?
- 11. 區分大小寫區分大小寫還是全大寫?
- 12. 在SELECT COLUMN和COUNT,mysql中區分大小寫區分?
- 13. git是否不區分大小寫?
- 14. 在MySQL中,列和表名是否區分大小寫?
- 15. MySQL中不區分大小寫的REPLACE?
- 16. QHash :: contains方法是否區分大小寫或不區分大小寫?
- 17. 不區分大小寫的URL重寫
- 18. Windows MySQL區分大小寫
- 19. 的PHP Zend Lucene的做搜索「不區分重音」,如「不區分大小寫」
- 20. 使區分大小寫不敏感的區分大小寫表
- 21. 區分大小寫的URL不區分大小寫
- 22. VB.NET不區分大小寫;很好的區分大小寫?
- 23. MySQL - 不區分大小寫的搜索
- 24. MySQL不區分大小寫的搜索?
- 25. 不區分大小寫的mysql替換
- 26. DB整理不區分大小寫 - 會影響性能嗎?
- 27. 在查詢結果中區分區分大小寫的區分+ mysql
- 28. mysql和php突然區分大小寫?
- 29. PyPI是否區分大小寫?
- 30. SQL語法是否區分大小寫?
不是今天...但是,如果你想要摺疊的情況下,但重音敏感,請在http://bugs.mysql.com提出請求。 –