我的表排序规则是utf8_general_ci
,字符集是utf8
. 如果我运行如下查询,它不会显示任何值。
SELECT * FROM mytable WHERE myfield = "Björn Borg"
OR myfield = "FrüFrü & Tigerlily";
那么我如何从表中获取值?
问题可能出在您的连接字符集中。尝试运行
SET NAMES 'utf8'
然后是您的查询。
MySQL 定义字符集的地方更多,包括列级别。
检查数据库设置: SHOW VARIABLES LIKE 'char%'; 显示像'collation%'这样的变量;
检查表设置:SHOW CREATE TABLE tablename;
检查各个列: SHOW FULL COLUMNS IN tablename;
如果您使用错误的编码创建了一个数据库,您将不得不更改所有这些错误字符集的每一次出现。