MS Access 查询不使用标准相等运算符区分平假名和片假名
MS Access Query does not differentiate hiragana and katakana with standard equality operator
我最近 运行 遇到一个 MS Access 查询问题,我在其中搜索包含日语文本的 table。日语有平假名和片假名两种字母,音值相同,但字符不同。例如,あ(平假名)和ア(片假名)都发音为'a'。对于我的 SELECT
查询,这两个字符需要被视为不同的,但是当我 运行 以下查询时:
SELECT [KeywordID] FROM [Keyword] WHERE [Keyword].[Keyword]="あ"
它 returns 在我的 Keyword
table 中有两个值,都是 あ 和 ア(对我来说是不正确的行为。)
我已经想出解决方法来确保这两个字符在 SELECT
查询中被区别对待,并且想 post 在这里以备将来参考,以防其他人使用日语MS Access 中的字符
我找到的解决方案是在 WHERE
子句中使用 StrComp
进行二进制比较。这将正确区分平假名和片假名,如:
SELECT [KeywordID], [Keyword] FROM [Keyword] WHERE StrComp([Keyword].[Keyword], "あ", 0)=0
这returns一条记录,正是我需要的
我最近 运行 遇到一个 MS Access 查询问题,我在其中搜索包含日语文本的 table。日语有平假名和片假名两种字母,音值相同,但字符不同。例如,あ(平假名)和ア(片假名)都发音为'a'。对于我的 SELECT
查询,这两个字符需要被视为不同的,但是当我 运行 以下查询时:
SELECT [KeywordID] FROM [Keyword] WHERE [Keyword].[Keyword]="あ"
它 returns 在我的 Keyword
table 中有两个值,都是 あ 和 ア(对我来说是不正确的行为。)
我已经想出解决方法来确保这两个字符在 SELECT
查询中被区别对待,并且想 post 在这里以备将来参考,以防其他人使用日语MS Access 中的字符
我找到的解决方案是在 WHERE
子句中使用 StrComp
进行二进制比较。这将正确区分平假名和片假名,如:
SELECT [KeywordID], [Keyword] FROM [Keyword] WHERE StrComp([Keyword].[Keyword], "あ", 0)=0
这returns一条记录,正是我需要的