在Mysql中区分大小写使用select where Query
嗨,我正在使用Java前端和Mysql后端,,,
实际上在tbl_test中包含
name value --------------- abc 22 xyz 14 ABC 32 xyZ 4 ABc 4
在java中我尝试检索abc的值,因此编写了一个代码
ResultSet result=stmt.executeQuery("select value from tbl_test where name='abc'"); while(result.next()) { System.out.println("Answer : "+result.getInt(1)); } result.close();
目前的输出是
Answer : 22 Answer : 32 Answer : 4
其实我只希望结果’abc’即答案:22
我也找到了结果,代码如下
String name="abc"; ResultSet result=stmt.executeQuery("select name, value from tbl_test where name='"+name+"'"); while(result.next()) { if(name.equals(result.getString(1)) System.out.println("Answer : "+result.getInt(2)); } result.close();
现在我得到正确的输出,但这个结果来自java代码不在查询中,是否有可能在查询中检索相同的结果…
谢谢
使用MySQL Binary
运算符:
select value from tbl_test where CAST(name AS BINARY) ='abc';
SQL小提琴演示 。
例如,您必须使用区分大小写的搜索,或者像Mahmoud所说的那样使用Binary serach
select value from tbl_test where name COLLATE latin1_general_cs LIKE 'abc'
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html