Mysql中区分大小写使用select where Query
技术问答
250 人阅读
|
0 人回复
|
2023-09-14
|
嗨,我使用的是Java前端和Mysql后端,
- }3 A. t x$ _& C$ R其实在 tbl_test中 包含
0 _& Z1 _/ i& i5 I% M2 \name value l9 D" c# E7 N9 O& Z! E
---------------4 @* U; J& [; | e$ J
abc 22
3 E$ @6 I# W8 T3 f* ~: T xyz 14
+ F% V. p* N" A: t ABC 32 8 E. \2 w0 j( m8 I5 |
xyZ 4 : E2 k* u, V$ f& r
ABc 4- R- ^$ J$ p. p8 o( a
在Java中,我尝试检索 abc的值, 因此编写了代码, m; X7 x# n+ H* j' R
ResultSet result=stmt.executeQuery("select value from tbl_test where name='abc'");
5 C) U( c/ ?7 _6 |4 c- ^+ Dwhile(result.next()) x; G/ T! U( V6 ^8 G$ |+ F# x
{
$ a. s) x1 V( R System.out.println("Answer : "+result.getInt(1));: i7 n# X; s6 `0 z* g+ X
}; D; s* ]& U& y8 r; o% B
result.close();
1 u; n; d7 b. ]* D" U# L当前输出为
4 T: h" p7 ~/ H- q. ] ?Answer : 220 f6 ?1 G' ]# w$ p$ H' o: O/ ]
Answer : 32; \9 p' g1 S$ F+ N7 ^7 {! G9 |
Answer : 40 {% S( a4 ~- t P- l
实际上我只希望结果为“ abc”,即 答案:22
: \9 b+ o3 `5 \- k我也找到了结果,下面的代码
, Q4 L' {1 g: l0 J/ L) v0 TString name="abc";
1 E' {& z* p2 uResultSet result=stmt.executeQuery("select name, value from tbl_test where name='"+name+"'");
6 V3 @9 P" E9 M% L8 Awhile(result.next())4 S& D2 m8 F5 l' p
{4 k1 c5 n( X$ h- ]3 u
if(name.equals(result.getString(1))% [' ?2 e* D& O3 F& M2 ?* D
System.out.println("Answer : "+result.getInt(2));
" c1 B2 |5 R9 V1 F; _( R }
+ ~: n* K: w$ z( sresult.close();
# f- h8 V; V/ l现在我得到正确的输出,但是来自Java代码的此结果不在查询中,是否可以在查询中检索相同的结果…- q& [: b$ ?$ ~ a0 T
谢谢
# a) Y" ]0 K1 Q; ?7 h3 L& e& F# a; \
3 f3 N6 ^8 j6 i& d解决方案:
1 ^) t. A; Z+ H3 A% `. u
4 Q) d4 p' n) I* n( Y7 x* ]: i1 O# l2 M" `7 t0 x
# ]! X' j* E8 V 使用MySQLBinary运算符:$ b w+ O1 y4 `: D2 Q* _
select value
]( ?+ f% G% d ]5 w1 Gfrom tbl_test 6 y+ @3 E" O/ i! |$ P7 U$ V9 ~% v/ T
where CAST(name AS BINARY) ='abc';4 m) ?7 Z5 G8 H: ?; p o, L1 D& X
SQL提琴演示 。 |
|
|
|
|
|