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;
在数据库中创建的表将默认使用 utf8
和 utf8_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'
在我们的 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;
在数据库中创建的表将默认使用 utf8
和 utf8_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'