1

查询所有以英文首字母开头的单词很容易,例如要查询所有以“a”开头的单词,我们执行这个查询:

SELECT * FROM table WHERE word LIKE 'a%'; 

我们可以得到像“an”、“at”、“after”这样的结果......

但在韩语中就不一样了,因为一个韩语单词被认为是单个 Unicode 字符,所以这个查询:

SELECT * FROM table WHERE word LIKE 'ㄱ%'; 

不会返回诸如“가”、“고”、“간”之类的词...(结果可能类似于“ㄱ자”、“ㄱ견”...)

那么我应该怎么做才能得到我期望的结果呢?(即当我想查询以“ㄱ”开头的单词时,我会得到像“가”,“고”,“간”这样的词)

非常感谢!

4

1 回答 1

0

您的问题是 unicode 格式之一和韩语结合辅音和元音以创建新字符的独特行为。您可以将这些新字符存储为单独的字形或组合字形。如果你想像这样搜索,你需要将它们存储为单独的字形。这意味着获取将存储在数据库中的每个传入字符串并在插入它们之前对其进行处理,将复合字形分解为其组件。如果你有一个现有的数据库,你也必须对现有数据这样做。

另一种方法是使用 unicode 中的复杂表达式列出所有可能的字形与该字符的组合,并使用大量 OR 搜索所有这些组合。

无论哪种方式都是颈部疼痛。亚洲语言对程序员来说可能是一个真正的问题,它们似乎都有一些让它们难以处理的小东西。

于 2013-03-25T06:49:10.883 回答