如何SQL比较列当一个人重音字符?重音、字符、个人、SQL

2023-09-13 23:58:57 作者:左岸的微笑

我有两个SQLite的表,我很想加入他们的名字列。此列包含重音字符,所以我想知道我怎么可以比较它们的加入。我想放弃的工作比较口音。

I have two SQLite tables, that I would love to join them on a name column. This column contains accented characters, so I am wondering how can I compare them for join. I would like the accents dropped for the comparison to work.

推荐答案

您可以影响人物的比较(如忽略大小写,忽略重音)使用排序规则。 SQLLite只有少数建于归类,但你可以添加你自己的。

You can influence the comparison of characters (such as ignoring case, ignoring accents) by using a Collation. SQLLite has only a few built in collations, although you can add your own.

SqlLite,数据类型,排序序列 SqlLite,定义新的整理顺序 SqlLite, Data types, Collating Sequences SqlLite, Define new Collating Sequence

编辑: 鉴于这似乎令人怀疑,如果Android支持UDF和计算列,这里的另一种方法:

Given that it seems doubtful if Android supports UDFs and computed columns, here's another approach:

添加另一列到表,normalizedName 当你的应用程序写出行的表,它规范化名字本身,去掉口音和表演等变化。它将结果保存在normalizedName。 您在您的加入使用normalizedName。

由于归一化的功能,现在在Java中,你应该有它的编码数的限制。除去在Java口音几个例子给出这里。

As the normalization function is now in java, you should have few restrictions in coding it. Several examples for removing accents in java are given here.