【发布时间】:2014-12-20 10:46:45
【问题描述】:
我在PHP 开发了一个丹麦网站。我正在使用mysqli。
我在称为标签的数据库字段中有 Daugård 和 Århus 之类的词。
当我运行如下查询时,我希望这两个值都作为结果。
Query : select * from table_name where tags like '%år%';
Expected result : Daugård and Århus both
Actual result : Daugård
现在它执行区分大小写的匹配并仅返回 Daugård 单词。 我尝试通过函数 set_charset('utf8') 将 charset 动态更改为 utf8,但没有成功。
'tags' field is 'utf8_general_ci'、table collation is 'utf8_general_ci' 和我的database collation is 'latin1_swedish_ci' 的排序规则。
帮帮我,我怎样才能做到这一点?
【问题讨论】:
-
该字段是否有自己的排序规则?
-
是的,我忘了提,'tags' 字段也有 'utf8_general_ci' 排序规则
-
数据实际上是否正确存储在数据库中,如字符 Å 和 å? “尝试更改字符集”听起来您之前没有设置字符集,这意味着数据可能作为垃圾存储在数据库中,MySQL 无法识别特定字符。
-
好吧,我尝试在通过 PHP-MySQLi 查询检索数据时更改字符集运行时。我在保存之前或之后没有更改表、字段或数据库的排序规则...
-
什么版本的 MySQL?
标签: php mysql utf-8 mysqli case-sensitive