我有一个函数返回五个字符混合大小写.如果我对这个字符串进行查询,它将返回值而不管大小写.
如何使MySQL字符串查询区分大小写?
假设我们有一个如下所示的表:
create table t1(c1 varchar(x)collate utf8mb4_general_ci, index(c1))
Run Code Online (Sandbox Code Playgroud)
要进行字节敏感的比较,我们基本上有两种方式(假设所有相关字符串都没有尾随空格,即它们都符合padspace标准):
select*from t1 where c1 ='test'collate utf8mb4_bin
select*from t1 where c1 = binary'test'
Run Code Online (Sandbox Code Playgroud)
当性能受到关注时,哪个应该是首选的?
使用非二进制字符排序索引时,与二进制字符串或二进制排序规则进行比较是否更快?
(在表中添加一个新列只是为了存储二进制等效项,c1这对存储来说是一个很大的打击而且不可能.)
(PS会欣赏一个比较hash和btree比较的答案,尽管我主要对btree比较感兴趣.)