mysql - 选择 ù 等字符

标签 mysql unicode collation

有一个包含 2 条记录的表 - uù:

CREATE TABLE `tbl` (`text` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `tbl` (`text`) VALUES ('u'), ('ù');

我想选择带有 ù 的行:

SELECT * FROM `tbl` WHERE `text` = 'ù';

结果是

+------+
| text |
+------+
| u    |
| ù    |
+------+

这里有什么问题吗?我怎样才能与这样的角色一起工作?

最佳答案

这与 mysql 比较值时使用的排序规则有关。如果运行以下查询,您将看到哪种排序规则有效:

show collation where Charset = 'utf8';

其中一个的默认值应为yes。就我而言,它是 utf8_general_ci。此排序规则使用 Unicode 排序来将带重音符号和不带重音符号的字符等同起来。

如果您运行以下查询:

SELECT * FROM `tbl` WHERE `text` = 'ù' collate utf8_bin;

那么你只能返回一行。 MySQL documentation中有更多信息。 .

关于mysql - 选择 ù 等字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20595297/

相关文章:

c++ - cocos2d-x C++ 字符串unicode转换

mysql - 使用外文和英文字符获得相同的 MySQL 搜索结果

php - 设置 cookie 并插入数据库时​​遇到问题

mysql - 日期范围内的记录 - 性能

mysql - 在我的计算中添加百分号 (%)

java - 为什么允许在带有某些 Unicode 字符的注释中执行 Java 代码?

c++ - 通过旧的(非 wchar)API 函数在非 ANSI 系统上打开文件

java - 在哪里可以找到一组特定的字符串相等性比较规则?

php - utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则

MySQL 查询查找跨多行的匹配项