最近,我在搜索包含日语文本的表时遇到了一个MS Access查询问题。日语有两个字母,平假名和片假名,具有相同的声音值,但字符不同。例如,銇(hiragana)和銈(片假名)都发音为’a’。对于我的SELECT查询,这两个字符需要被区别对待,但是当我运行以下查询时:
SELECT
SELECT [KeywordID] FROM [Keyword] WHERE [Keyword].[Keyword]="あ"
它返回表中的两个值Keywordreturns和銇(出于我的目的,行为不正确。)
Keyword
我想出了一种解决方法,以确保在SELECT查询中将这两个字符区别对待,并在其他人在MS Access中使用日语字符的情况下,将其发布在此处以供将来参考。
我发现的解决方案是StrComp在WHERE子句中使用它来进行二进制比较。这将正确区分平假名和片假名,如下所示:
StrComp
WHERE
SELECT [KeywordID], [Keyword] FROM [Keyword] WHERE StrComp([Keyword].[Keyword], "あ", 0)=0
这将返回一条记录,这就是我所需要的。