9

私は当初、これは些細なことだと思っていました。次に、「バイナリ」がそれを行う可能性があると考えました。現時点ではわかりません。

Name
----
John
MARY
Kin
TED

すべて大文字のMARYとTEDだけをクエリしたいと思います。これをどのように照会しますか?

4

6 に答える 6

37

照合で大文字と小文字が区別されない場合は、BINARY比較を使用する必要があります。

SELECT *
FROM yourtable
WHERE Name = BINARY UPPER(Name)

オンラインで動作することを確認してください: sqlfiddle

于 2012-08-23T19:30:17.127 に答える
6

フィールドでUPPER()関数を使用しName、結果を の元の値と比較するだけですName

select Name from Table where Name = UPPER(Name)

こちらです

UPPER(Name)   ||  Name
---------------------------------------
JOHN          !=  John
MARY          ==  MARY
KIN           !=  Kin
TED           ==  TED

必要な行だけが返されます。

@mdoyle がここにコメントしたように、正しい照合 (大文字と小文字を区別) を使用して列を定義する必要があります

于 2012-08-23T19:27:42.170 に答える
2

これを試して:

select name from table where name=upper(name);
于 2012-08-23T19:28:36.427 に答える
1

以下を使用:

SELECT name FROM table WHERE name = BINARY UPPER(column_name);
于 2012-08-24T07:09:08.260 に答える
1

これを試して:

SELECT Name
FROM   table
WHERE  Name COLLATE latin1_general_cs LIKE UPPER(Name)
;
于 2012-08-23T19:37:58.147 に答える
0

これも数値を返しますが、列名の問題ではないようです。

SELECT * FROM names WHERE 

ASCII(name) = ASCII(Upper(name))
于 2012-08-23T19:29:10.717 に答える