ish*_*ael 12 mysql sql distinct case-sensitive
如何使MySQL的SELECT DISTINCT区分大小写?
create temporary table X (name varchar(50) NULL);
insert into X values ('this'), ('This');
Run Code Online (Sandbox Code Playgroud)
现在这个查询:
select distinct(name) from X;
Run Code Online (Sandbox Code Playgroud)
结果是:
这个
这里发生了什么?我想SELECT DISTINCT区分大小写.那不应该是默认的吗?
him*_*056 25
使用BINARY
运算符:
SELECT DISTINCT(BINARY name) AS Name FROM X;
Run Code Online (Sandbox Code Playgroud)
你也CAST
可以选择:
SELECT DISTINCT
(CAST(name AS CHAR CHARACTER SET utf8) COLLATE utf8_bin) AS Name FROM X;
Run Code Online (Sandbox Code Playgroud)
我宁愿将列定义更新为区分大小写的碰撞.
像这样:
create table X (name VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NULL);
insert into X values ('this'), ('This');
Run Code Online (Sandbox Code Playgroud)
SQLFiddle:http://sqlfiddle.com/#!2/add276/2/0