mysql - MySQL 中的排序规则

标签 mysql database phpmyadmin collation

有一个具有以下结构的表:

Structure of table

以下是该表中的数据:

Records in this table

好的,让我们尝试以下操作:

SELECT
LOWER(md5_upper_bin), 
LOWER(md5_upper_ge_ci), 
UPPER(md5_lower_bin),
UPPER(md5_lower_ge_ci) 
FROM qwew


结果是:

Result of experimental query

问题:为什么后缀_bin被忽略了?根据MySQL manual ,我们可以说 _bin 也会影响像 LOWER 和 UPPER 这样的函数(并且使它们不起作用,因为这些字段中使用了二进制类型的集合)。但我们在实践中得到了另一个结果。为什么?

最佳答案

CHARVARCHAR 存储 nonbinary strings ,而不是二进制字符串。您必须将实际列类型更改为 BINARYVARBINARY 才能使 _bin 排序规则影响 UPPERLOWER 函数应用于其中的数据。

关于mysql - MySQL 中的排序规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4912981/

相关文章:

mysql - phpmyadmin 中出现错误 #1604,在 heidisql 中运行正常

mysql utf-8 字符集支持

c# - 输入字符串的格式不正确

mysql - 找出几个月前的平均工资 - MySQL

mysql - 复制整个 MySQL 数据库

树莓派 3 : i wasn't able to write a value in db using a variable 上的 python 和 sql

MySQL - 计算一行重复的最大次数

c++ - pqxx 返回刚刚插入的行的 id

python - (Django) 如何在单个 view.py 文件中遵循数据库备份和恢复工作流程?

c# - 使用 phpMyAdmin 从远程计算机连接到本地 MySQL 数据库