[h2]MySQL 要用 where like '%🎃%' 搜尋emoji:
collate 請用 "utf8mb4_unicode_520_ci"[/h2]
0. Goal: Using emoji like 🎃 😍 🥰 in Tags or HashTag
1. 通常使用 utf8mb4 就是為了 Emoji
2. 假設你需要做到 CI (Case Insensitive),你可能會選用 utf8mb4_general_ci 或者 utf8mb4_unicode_ci 作為不分大小寫的 COLLATE
3. 但是這又會讓 Search/Sort 出問題 e.g. 🎃 vs. 🤡
這兩者無法同時存在,會被當成 CASE Insensitive,很奇怪
你用 utf8mb4_bin 可以解決 COLLATE的問題,但是它是 Case-Sensitive
會分大小寫,如果你要兼顧 ASCII letter CI (e.g. hashtag 我們會做 CI)
這裡 bin 就不適合。
4. 為了兼顧 Search COLLATE 以及 Case-Insensitive
此時建議使用 utf8mb4_unicode_520_ci
可以解絕大部分的問題,當然效能會降低一點
e.g.
https://vovo2000.com/tags/%F0%9F%A4%A1/
e.g.
https://vovo2000.com/tags/%F0%9F%8E%83/(2019-10-21 00:06)