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

谢谢

4

2 回答 2

6

使用 MySQLBinary运算符:

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

SQL 小提琴演示

于 2013-02-06T07:39:31.163 回答
1

例如,您必须使用区分大小写的搜索,或者像 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-sensitive.html

于 2013-02-06T07:42:03.330 回答