我有一个网站,挪威用户应该可以在其中搜索城市名称。
慕尼黑市存储为“慕尼黑”。
哥德堡市以“哥德堡”的名称存储。


使用挪威语键盘的用户在搜索“慕尼黑”时将键入“慕尼黑”。
这是因为挪威人不经常使用ü,而是会键入u,这是键盘上最接近的字母。
他们在搜索“哥德堡”时将键入“哥德堡”。这是相同的字母,但在挪威语和瑞典语中看起来不同。
对于使用ä而不是æ的城市也是如此。


整理测试

ut8_general_ci
慕尼黑将给慕尼黑。
哥德堡不会给哥德堡

latin1_swedish_ci
慕尼黑不会给慕尼黑。
哥德堡将给哥德堡。

有没有一种方法/排序规则可以同时支持这两种情况?

我使用mysql 5.6.12

搜索目的地时,可以在hotels.com处找到首选的行为。

最佳答案

首先,检查collation charts webdsite,您可以在其中查看每个排序规则中哪些字符等于哪个字符。单行中的那些彼此相等。如果找到存在描述的匹配项的排序规则,那么您将获得成功。我会检查各种斯堪的纳维亚的,或者german ones.

或者,您可以使用所需的权重为mysql创建自己的归类。显然,您可以基于现有的排序规则。

10-06 11:34