MySQL SELECT DISTINCT应该区分大小写吗?
技术问答
167 人阅读
|
0 人回复
|
2023-09-14
|
如何使MySQL的SELECT DISTINCT区分大小写?
* ]8 O8 f* z( [8 @: q# S! ^create temporary table X (name varchar(50) NULL);
$ |# j* `/ l" E* v3 Ainsert into X values ('this'), ('This');: [: Q0 m7 j/ K. y
现在这个查询:& H& K1 x5 }7 m7 n" T4 @& e/ }% }
select distinct(name) from X;, L( B6 V* u4 S g6 o2 F0 c
结果是:
9 i# D& {) A8 v' s/ i4 r/ p1 C- j% q# I
这
; ]( ? Z, n4 V8 K, }" ]9 ?1 w
% y! Z( Y: M, v0 S; ?这里发生了什么?我希望SELECT DISTINCT区分大小写。那不是默认值吗?0 g4 m8 B0 C; [8 D
" W8 \: J6 g' ` n6 ? ~3 ^解决方案:" [; B# i6 \) f; o; H$ h
' ?+ b* J6 B' A/ P E0 l5 J2 J( F
i+ ~* M0 y# r) D& i# R2 _) ^/ z8 R( t+ Y0 F3 P9 i
为此使用BINARY运算符:
, l- Q- ^" Q9 \SELECT DISTINCT(BINARY name) AS Name FROM X;8 m" F3 r) m* Z- D
您还CAST可以在选择以下内容时选择:- c& [, u- a. J! G" }8 f; r
SELECT DISTINCT # ?* Y4 M& M3 ~( S
(CAST(name AS CHAR CHARACTER SET utf8) COLLATE utf8_bin) AS Name FROM X;' X: U g" f1 |& @+ M
看到这个SQLFiddle |
|
|
|
|
|