【MySQL】大文字と小文字を区別しない/させる方法


ここではMySQLで、大文字と小文字を区別しない検索方法、または区別させて検索させる方法を紹介しています。

大文字と小文字を区別しない方法

MySQLでは、デフォルト設定では大文字のデータと小文字のデータを区別しません。

つまり、大文字と小文字を区別せずに検索するには、特に何もする必要がありません。

例えば、次のSQLではCOL1列の値がtestというデータとTESTというデータが検索結果として取得することが出来ます。

SELECT * FROM tab1 WHERE col1 = 'test'; 

大文字と小文字を区別させる方法

MySQLで大文字と小文字を区別するには、BINARY演算子を使います。

次のSQLでは、COL1列がtestというデータのみが検索結果として返ってきます。

SELECT * FROM tab1 WHERE BINARY col1 = 'test';
または
SELECT * FROM tab1 WHERE col1 BINARY 'test';

また、BINARY演算子をSQLごとに発行する他にもテーブルのカラムにBINARYオプションを付与することでも解決できます。

ALTER TABLE tab1 MODIFY col2 VARCHAR(5) BINARY;