在Mysql中区分大小写使用select where Query

时间:2013-02-06 07:35:06

标签: java mysql sql select

您好我正在使用Java前端和Mysql Backend ,,,

实际上 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代码而不是查询,,,是否有可能在查询中检索相同的结果......

谢谢

2 个答案:

答案 0 :(得分:6)

使用MySQL Binary运算符:

select value 
from tbl_test 
where CAST(name AS BINARY) ='abc';

SQL Fiddle Demo

答案 1 :(得分:1)

例如,您必须使用区分大小写的搜索,或使用像Mahmoud所说的二进制搜索

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