在使用select where查询中,Mysql区分大小写。

3

你好,我正在使用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代码而不是查询语句,是否有可能通过查询语句检索出相同的结果...

谢谢

2个回答

6
使用MySQL的二进制运算符:

使用MySQL Binary运算符:

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

SQL Fiddle Demo.


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接