Collate Latin1_General_CS_AS 和 Collate utf8_bin 是否相同,它们是不同的,前者适用于 Latin1 字符集,后者适用于 utf8 字符集,但我想知道两者是否会进行区分大小写和区分重音的匹配。
实际上,现在我已经将我的数据库从 sql server2000 迁移到 MySQL 5.2,并且我有一个密码字段,我想将其与 sql server 中的区分大小写和区分重音进行比较,Collate Latin1_General_CS_AS 工作正常,但我想知道 Collate 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/