我阅读了文档“在 SQL 语句中使用 COLLATE” https://dev.mysql.com/doc/refman/8.0/en/charset-collat e.html ,但它没有说明使用不同 COLLATE 值的效果到例子。举个例子,
SELECT *
FROM t1
WHERE k LIKE _latin1 'Müller' COLLATE latin1_german2_ci;
之后使用不同的值有什么区别COLLATE
?COLLATE
如果根本不使用该子句怎么办?如何找到之后使用的正确或可能的值COLLATE
?
当数据库无法比较数据并给出以下错误或类似错误时,这将使双方具有相同的排序规则
并且还可以对 ci 不区分大小写的比较进行 cs(区分大小写的 'ABC 不等于 'abc'),因此 'ABC' 等于 'abc',反之亦然
或者...优化器将无法使用索引。
最好(为了性能)所有内容都具有相同的排序规则:
必须“在运行时”切换排序规则的成本很高。
或者,我用它来查看不同的排序规则如何处理重音等。
请注意,索引以给定的字符集和排序规则存储数据。任何偏离这一点的需要都会消除使用索引来提高性能的能力。