HOWTO · MySQL

MySQL で Like の大文字と小文字を区別するようにする

この記事では、MySQL で like キーワードを大文字と小文字を区別するように強制する方法を紹介します。

C、C++、Java、MySQL などのプログラミング言語のキーワードは便利です。それらは予約語と呼ばれます。これらの予約された単語には、その意味と機能があります。

これらのキーワードがステートメントで使用されると、事前定義された動作に従って動作します。

SelectDelete、および Where は、予約済みキーワードの例です。これらの単語は、実装前に決定されたプロトコルに従って、ステートメントで適切に表示および動作します。

テーブルと変数の名前は、すでに予約されているため、キーワードと同じにすることはできません。そして、プログラミングの実践でこれらのキーワードをプログラムで使用することはできません。

Like キーワードを MySQL で大文字と小文字を区別するように強制する

MySQL の like キーワードは、where キーワードと一緒に使用されます。その機能は、特定のパターンに一致することです。

これらのパターンは、1つまたは複数のワイルドカード文字を使用して識別されます。

プログラミング言語では、ワイルドカード文字はその意味を保持し、パターンの識別に使用されるシンボルです。MySQL で使用されるワイルドカードには 2つのタイプがあります。

  1. パーセント記号-%は、これが like キーワードで使用される場合、0、1、または複数の文字の選択を示します。
  2. 下線記号-_ 記号は、任意の単語での単一文字の存在を表します。

これらの記号を使用して組み合わせを作成し、like 句内で組み合わせることができます。

LIKE キーワードの構文:

SELECT * FROM table_name WHERE column_name LIKE 'ABC_';
SELECT * FROM table_name WHERE column_name LIKE 'T_ST%';

上記の構文では、like キーワードとワイルドカード文字を使用して、テーブルから定義された値のセットを検索します。

like 操作の特性は、単語の大文字小文字を無視して、一致するものを見つけようとすることです。

like を使用してケース感度の比較を行う方法:

ユーザーが where 句で大文字と小文字を区別する完全一致を比較する必要がある場合は、LIKE BINARY キーワードを使用します。

MySQL ステートメントを実行するためのクエリ:

 select * from stu;
+------+---------+------------+
| id   | Name    | DOB        |
+------+---------+------------+
| 111  | Amit    | 1970-01-08 |
| 112  | Shushma | 0000-00-00 |
| 113  | Rami    | 2020-09-08 |
| 114  | Sam     | 2020-09-08 |
| 115  | tonny   | 2020-09-08 |
+------+---------+------------+

上記の表を参照して、like binary キーワードを使用した以下の 2つのクエリを理解してください。

Select * from stu where name LIKE BINARY 's%';
Select * from stu where name LIKE BINARY '%mi_';

上記のクエリは、列名のすべての出現箇所を一覧表示し、その間に文字 mi が含まれています。BINARY キーワードは、クエリで大文字と小文字を区別する一致検索として機能します。

%および _ の特殊文字は、stu テーブルに設定されたすべての結果と一致するものを見つける際に特別な意味を持ちます。

最初のクエリは、select クエリの結果、name 列が小文字の s で始まるすべての行になることを示しています。したがって、最初のクエリでは出力がありません。

同様に、%mi_ 文字を使用してクエリを再試行すると、結果が 1つだけ表示されます。これは、以下のスクリーンショットに示されています。

MySQL での上記のクエリの実際の実行スクリーンショットを以下に示します。

大文字と小文字を区別する機能と同様に使用する mysql