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' ie Answer : 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

たとえば、大文字と小文字を区別する検索を使用するか、マフムードが言ったようにバイナリ検索を使用する必要があります

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

于 2013-02-06T07:42:03.330 に答える