每个后面的COLLATE子句 列名称定义整理 用于文本条目的序列 柱。默认整理顺序 是为其定义的整理顺序 CREATE TABLE中的该列 声明。或者如果没有整理顺序 另有定义,内置 使用BINARY整理顺序。
整理顺序的作用是什么,以及什么是BINARY整理顺序?
答案 0 :(得分:5)
这是sql引擎在内部订购数据的方式。 Binary Collation做它的建议,它进行二进制比较。一般来说,它是最快的整理,虽然我从未量化它,因为它检查位模式,这意味着它是大小写和重音不敏感。
答案 1 :(得分:2)
二进制排序规则比较您的字符串逐字节,就像在unicode表中一样。例如:A,B,a,b。 区分大小写的顺序是:a,A,b,B。
二进制整理的优点是速度快,因为字符串比较非常简单/快速。在一般情况下,带二进制的索引可能不会产生排序的预期结果,但是对于完全匹配,它们可能很有用。
COLLATE NOCASE也会影响区分大小写的查询。
如果您的列中包含以下值:' aa',' aA'
select * from table where col = 'aa'
如果您使用COLLATE NOCASE创建了列,它将同时返回' aa'和' aA'。否则,如果您没有指定它,它将仅返回' aa'。
您也可以在查询中指定它(如果您使用COLLATE NOCASE创建了列,则速度会慢一些)
select * from table where col = 'aa' COLLATE NOCASE