MySQL:非英文字符打乱了我们的 SELECT 查询

MySQL: Non-english characters messes up our SELECT queries

在我们的 MySql 数据库上执行 select 查询时遇到问题。

此查询运行良好:

SELECT name FROM products WHERE brand = 'nike'

这个没有:

SELECT name FROM products WHERE brand = 'tøj'

有 1,000 多种产品的品牌 = 'tøj',所以我猜问题与非英文字符有关。

奇怪的是,只有当 运行 通过 Wordpress/PHP 查询时,事情才不起作用。如果我 运行 SELECT name FROM products WHERE brand = 'tøj' 通过 SQLYog,我会得到我期望的结果。

有人知道如何解决这个问题吗?

谢谢!

指定每个数据库的字符设置。要创建一个数据库,使其表使用给定的默认字符集和排序规则来存储数据,请使用 CREATE DATABASE 语句,如下所示:

CREATE DATABASE mydb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

在数据库中创建的表将默认使用 utf8utf8_general_ci 作为任何字符列。

在服务器启动时指定字符设置。要在服务器启动时 select 字符集和排序规则,请使用 --character-set-server--collation-server 选项。例如,要在选项文件中指定选项,请包括以下行:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

已通过将“ø”转换为“ø”(基于 http://www.i18nqa.com/debug/utf8-debug.html)修复了此问题

SELECT name FROM products WHERE brand = 'tøj' 而不是 SELECT name FROM products WHERE brand = 'tøj'