我需要在mysql中查找查询中大写和小写之间的区别。
因为我需要在我的java程序中选择用户名。
我试过了:
user_table
查询:
create table user_table (id int, name varchar(30));
insert into a user_table (1, "zdi0"), (2, "ZDI0");
ALTER DATABASE utf8 CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE user_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
select *
from a
where name = "ZDI0" ;
结果:
1 zdi0
2 ZDI0
我需要更改表而不是查询
提前致谢
答案 0 :(得分:3)
排序规则utf8_unicode_ci不区分大小写。如果要使用utf8排序规则并支持区分大小写,则需要使用utf8_bin,但utf8_bin是二进制排序规则。在您决定使用它之前,您应该阅读它。不幸的是,据我所知,utf8_bin是目前MySQL中唯一的区分大小写的utf8排序规则。
答案 1 :(得分:0)
如果要比较确切大小写的值,可以使用'binary'
函数。
示例:
mysql> select ( @U := 'Ravinder' ) = ( @L := 'ravinder' ) as `true`
-> , @U=binary( @L ) as `false`;
+------+-------+
| true | false |
+------+-------+
| 1 | 0 |
+------+-------+
无论整理是什么,此用法都会对完全匹配进行明确比较。