mysql哪种排序规则可以将西里尔文和拉丁文比较为相等?

8ehkhllq  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(388)

在我的项目中,如果用户在搜索字段中输入西里尔字母,我需要数据库返回“dog”дог" 反之亦然。比如音译搜索?。。。
例如在塞尔维亚,正式使用拉丁和西里尔字符。。。可以互换。我想塞尔维亚语拉丁语和西里尔语可能有一个特殊的排序,但正如我看到的,只有分开的版本。
有可能吗?怎样?

jyztefdp

jyztefdp1#

我很确定没有一个utf8/utf8mb4排序规则 D = Д (等等)。
我建议你做以下几点:
在表中有一个额外的列。它将是字符串的“罗马化”版本。为此列编制索引(可能是的 CHARACTER SET latin1 ; 我不知道什么是最好的 COLLATION ; 也许这无关紧要。)
插入一行时,计算该额外列的字符串。
还可以将任何搜索字符串罗马化。然后搜索新列。
浪漫化可能最好在你的应用程序中完成。在sql中这样做将是一个冗长而混乱的过程 REPLACE(REPLACE(...))

相关问题