mysql - MySQL Workbench 中的 BIN 列属性有何用途?

标签 mysql mysql-workbench

我已经做了足够的研究并阅读了 MySQL 文档,但我似乎没有找到 MySQL 表中 BINARY (BIN) 列属性的很好的解释。 有人可以解释什么时候应该检查这个和/或它的用途吗? enter image description here

最佳答案

BIN 列表示该列使用二进制排序规则。

我通过创建一个 VARCHAR 数据类型的表来测试这一点,并检查了 MySQL Workbench 中的 BIN 列。

然后我在命令行客户端中查看了该表的 DDL:

mysql> show create table mytable\G
*************************** 1. row ***************************
       Table: mytable
Create Table: CREATE TABLE `mytable` (
  `title` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  PRIMARY KEY (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

您可以看到排序规则为 utf8mb4_bin,这是该字符集的二进制排序规则。

与该列的字符串比较将使用逐字节比较,而不是根据任何与 unicode 兼容的排序规则使用字符等效项。

因此它区分大小写,即使字符仅在变音符号上有所不同,它们也会被视为不同。例如,'e' = 'é' 在二进制比较中为 false。

关于mysql - MySQL Workbench 中的 BIN 列属性有何用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74166665/

相关文章:

mysql - mysql.user 表的引擎可以从 MyISAM 转换为 InnoDb 吗?

php - 从php获取数据到ajax

php - 一定时间后自动更新行

mysql - 无法打开 mysql-workbench

MySQL 工作台 : Connecting to database automatically on the startup

mysql - 为什么我的 NULL 计数在 MySQL 中返回 0?非常基本

mysql - 如何找到表中具有满足特定条件的列的最大条目数?

mysql - 我的 SQL 工作台在 EER 图中创建多对多关系

mysql-workbench - MySQL 工作台 : multiple windows

mysql - 如何解决 MySQL Workbench 上的这些行错误?