mysql使用like和danish字符

mysql使用like和danish字符,mysql,character-encoding,Mysql,Character Encoding,我有一个html表单,发布后在Mysql数据库中执行SQL字符串,如下所示: SELECT * FROM IpProvider, IpUsers WHERE IpProvider.UserId = IpUsers.Id AND (IpProvider.CompanyName LIKE '%køb%' OR IpProvider.ShortDescrip LIKE '%køb%') 这将返回0行,但应返回1行(因为丹麦单词“køb”是ShortDescrip中文本的一部分)。此搜索

我有一个html表单,发布后在Mysql数据库中执行SQL字符串,如下所示:

 SELECT * 
 FROM IpProvider, IpUsers 
 WHERE IpProvider.UserId = IpUsers.Id AND 
 (IpProvider.CompanyName LIKE '%køb%' OR IpProvider.ShortDescrip LIKE '%køb%')
这将返回0行,但应返回1行(因为丹麦单词“køb”是ShortDescrip中文本的一部分)。此搜索适用于不包含丹麦字符的其他文本字符串

直接从表格字段复制的文本:
“Køb kvalitet fra starten-det er vores råd.”

Hmtl文件包含一个元标记,声明:charset=utf-8

mysql表字段中的排序规则为:
utf8\u常规\u ci


有什么想法吗?

试着将排序规则改为拉丁文1\u丹麦文1\u ci,看看是否更好。在拉丁语1\u丹麦语ci和utf8中,字符可能排序不同。请尝试发出以下查询:
设置名称utf8在脚本的开头。这将确保MySQL和您的库“交谈”UTF8无处不在

另外,尝试更改
utf8\u unicode\u ci
的排序规则。虽然它在某些语言中处理更好的排序规则,但它(据说)速度较慢


[编辑]我的第二个建议可能与此无关,因为在再次阅读您的问题后,您说搜索字符串在数据库中显示为“原样”。不过,默认情况下我倾向于使用utf8\U unicode\U ci。

感谢您的输入-我已经尝试过了,没有任何区别。我已经尝试过使用mysql\u set\u charset-它现在返回1行,即使显示的字符是错误的,但我会找到答案-非常感谢!Stack是一个问答网站(与论坛截然不同),您可以在这里找到关于接受答案的建议: