MySQL:非英语字符会扰乱我们的SELECT查询

时间:2016-10-15 23:17:50

标签: mysql select sqlyog non-english

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

此查询工作正常:

SELECT name FROM products WHERE brand = 'nike'

这个没有:

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

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

奇怪的是,只有在通过Wordpress / PHP运行查询时才会出现问题。如果我通过SQLYog运行SELECT name FROM products WHERE brand = 'tøj',我会得到我期望的结果。

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

CREATE DATABASE mydb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

默认情况下,数据库中创建的表将使用utf8utf8_general_ci来表示任何字符列。

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

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

答案 1 :(得分:0)

通过将“ø”转换为“¸”(基于http://www.i18nqa.com/debug/utf8-debug.html)来修正它

即。 SELECT name FROM products WHERE brand = 'tøj'代替SELECT name FROM products WHERE brand = 'tøj'