我有一个网站,挪威用户应该可以在其中搜索城市名称。
慕尼黑市存储为“慕尼黑”。
哥德堡市以“哥德堡”的名称存储。
使用挪威语键盘的用户在搜索“慕尼黑”时将键入“慕尼黑”。
这是因为挪威人不经常使用ü,而是会键入u,这是键盘上最接近的字母。
他们在搜索“哥德堡”时将键入“哥德堡”。这是相同的字母,但在挪威语和瑞典语中看起来不同。
对于使用ä而不是æ的城市也是如此。
整理测试
ut8_general_ci
慕尼黑将给慕尼黑。
哥德堡不会给哥德堡
latin1_swedish_ci
慕尼黑不会给慕尼黑。
哥德堡将给哥德堡。
有没有一种方法/排序规则可以同时支持这两种情况?
我使用mysql 5.6.12
搜索目的地时,可以在hotels.com处找到首选的行为。
最佳答案
首先,检查collation charts webdsite,您可以在其中查看每个排序规则中哪些字符等于哪个字符。单行中的那些彼此相等。如果找到存在描述的匹配项的排序规则,那么您将获得成功。我会检查各种斯堪的纳维亚的,或者german ones.。
或者,您可以使用所需的权重为mysql创建自己的归类。显然,您可以基于现有的排序规则。