mysql - MySQL 中的排序规则

标签 mysql sql-server collation

Collat​​e Latin1_General_CS_AS 和 Collat​​e utf8_bin 是否相同,它们是不同的,前者适用于 Latin1 字符集,后者适用于 utf8 字符集,但我想知道两者是否会进行区分大小写和区分重音的匹配。

实际上,现在我已经将我的数据库从 sql server2000 迁移到 MySQL 5.2,并且我有一个密码字段,我想将其与 sql server 中的区分大小写和区分重音进行比较,Collat​​e Latin1_General_CS_AS 工作正常,但我想知道 Collat​​e utf8_bin是 MySQL 中的替代品,或者有一些其他更好的方法可以实现相同的目标。

最佳答案

我不知道 SQL Server 和你提到的排序规则,但是 utf8_bin,是一个 binary collation , 确实区分大小写和重音。

不过,您不一定需要在该排序规则中包含整个数据库 - 二进制排序规则在 sorting 上不是很好。 .您可以使用 COLLATE keyword 在非二进制排序规则(如 utf8_general_ci)中强制执行二进制比较:

SELECT column FROM table WHERE password COLLATE utf8_bin = "abcäöü"; 

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

相关文章:

c# - 修改密码功能中的加密和解密?

php - 如果我删除其 var_dump,MSSQL 日期时间对象将不会回显正确的日期

sql-server - SQL Server - 何时使用聚集索引与非聚集索引?

mysql - 使用 libmysqlclient C API 设置 collat​​ion_connection

mysql - 排查mysql中的 "Illegal mix of collations"错误

php - 计算一个表的记录是否匹配另一表的记录

mysql - 用另一个表的匹配行替换选择查询的所有行

sql - 插入具有不同排序规则的数据时如何转换排序规则?

mysql - 在同一 SQL 查询中使用多个 CASE ... WHEN 语句时会发生什么?

sql-server - t-sql 中的 IsNumeric 有问题吗?