MySQLで列から完全一致の文字列を検索する方法(BINARY+LIKEの使い方)
MySQLで大文字・小文字を区別して文字列を検索するには?
MySQLで列の中から特定の文字列を完全一致(大文字・小文字を区別)で検索したい場合は、BINARYキーワードをLIKE演算子およびワイルドカード「%」と組み合わせて使用します。基本構文は以下の通りです。
select *from yourTableName where binary yourColumnName LIKE '%yourStringValue%';
通常のLIKE検索では大文字と小文字が区別されませんが、BINARYを付けることでバイナリ比較が行われ、「John」と「JOHN」のような表記ゆれを厳密に区別できるようになります。
1. サンプルテーブルを作成する
まず、検索対象となるテーブルを作成します。
mysql> create table DemoTable( Name varchar(20));Query OK, 0 rows affected (1.93 sec)
2. テストデータを挿入する
INSERTコマンドを使って、いくつかのレコードを登録します。あえて大文字と小文字が混在するデータを用意しています。
mysql> insert into DemoTable values('Chris');Query OK, 1 row affected (1.11 sec)mysql> insert into DemoTable values('John');Query OK, 1 row affected (0.38 sec)mysql> insert into DemoTable values('Adam');Query OK, 1 row affected (1.19 sec)mysql> insert into DemoTable values('JOHN');Query OK, 1 row affected (0.60 sec)mysql> insert into DemoTable values('ADAM');Query OK, 1 row affected (0.43 sec)3. 登録されたレコードを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行すると、以下のような結果が出力されます。
+-------+| Name |+-------+| Chris || John || Adam || JOHN || ADAM |+-------+5 rows in set (0.00 sec)
4. BINARYを使って完全一致検索を実行する
ここで、BINARYキーワードを使用して「JOHN」(すべて大文字)だけを検索してみます。
mysql> select *from DemoTable where binary Name LIKE '%JOHN%';
実行結果は以下の通りです。「John」ではなく「JOHN」のみが抽出されている点に注目してください。
+------+| Name |+------+| JOHN |+------+1 row in set (0.09 sec)
まとめ
MySQLで大文字・小文字を厳密に区別した文字列検索を行うには、WHERE binary 列名 LIKE '%検索文字列%'のように記述します。BINARYを指定しない場合、照合順序(collation)の設定によっては大文字・小文字が同一視されるため、意図しない結果になることがあります。正確な一致が必要な場面では、このテクニックをぜひ活用してください。
-
JavaScriptで文字列を検索する方法【search()メソッドの使い方を解説】
JavaScriptで文字列を検索する方法 JavaScriptで文字列の中から特定の文字列を探すには、search()メソッドを使用します。このメソッドは、引数に渡した文字列(または正規表現)が対象の文字列内で最初に一致した位置(インデックス)を返し、見つからなかった場合は -1 を返します。 以下は、JavaScriptで文字列を検索するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" />
-
MySQLで数値文字列に比較演算子を使用する方法をわかりやすく解説
MySQLで数値文字列を比較するには?MySQLでは、「5-9」や「2-4」のようなハイフン区切りの数値文字列をそのまま比較することはできません。そんなときは、substring()関数とinstr()関数、さらにCASTを組み合わせることで、文字列から数値部分を取り出して比較演算子を使えるようになります。この記事では、実際にテーブルを作成しながら、数値文字列に対して比較演算を行う方法を順番に解説していきます。1. サンプルテーブルを作成するまずは、ユーザーIDと教育期間のギャップ(数値文字列)を格納するテーブルを作成しましょう。mysql> create table DemoTable