MySQL:ss和ß;相似

MySQL:ss和ß;相似,mysql,sql,Mysql,Sql,有没有什么解决方案可以让MySQL在LIKE语句中自动处理ss和ß?在使用equals=的语句中,它可以工作,但我们有一个搜索文本字段,因此该术语不等于数据库中的搜索数据 仅更改数据库的排序规则并没有解决问题,因为它只适用于相等的语句(=)。您可以在要比较的字段上使用REPLACE()。大概是这样的: WHERE REPLACE(YourField, 'ß', 'ss') LIKE '%ss' @NicoVanBelle的可能副本:请查看问题更新;它不是重复的,因为排序规则的更改似乎不足以解决

有没有什么解决方案可以让MySQL在
LIKE
语句中自动处理
ss
ß
?在使用equals
=
的语句中,它可以工作,但我们有一个搜索文本字段,因此该术语不等于数据库中的搜索数据


仅更改数据库的排序规则并没有解决问题,因为它只适用于相等的语句(
=
)。

您可以在要比较的字段上使用
REPLACE()
。大概是这样的:

WHERE REPLACE(YourField, 'ß', 'ss') LIKE '%ss'

@NicoVanBelle的可能副本:请查看问题更新;它不是重复的,因为排序规则的更改似乎不足以解决问题。它会阻止使用
YourField
(如果存在)的索引吗?@9000是的。与德语排序选项相比,我仍然更喜欢它,因为我认为umlaut比较是相等的,例如
u=u
,这是一个巨大的问题。但如果出现明显的减速,可以通过多种方式处理,比如用替换的字符字段创建另一个索引列。@aaron diez太糟糕了,MySQL不支持函数索引。当这还不够时,一个合适的全文索引服务器可能是正确的答案。如果你有一个大的数据集,这将变得非常缓慢。