データベースの中から例えば「みかん」を探す時は
WHERE name=’みかん’;
で探すことができますが、例えば「み」が付く商品を検索する場合はどのようにすれば良いでしょう。
SELECT * で全部のデータを取り出して、自分で探すしかないのかな…
MySQLでは、データベース内の特定の文字列を含むデータを効率的に検索するための便利な方法が提供されています。
その中で特に重要なのが、LIKE演算子の使用です。
この演算子は、文字列のパターンマッチングを行う際に非常に有用です。
▼この記事で使用しているデータベースの作成や内容に関してはこちらの記事をご参照ください
▼youtube
LIKE演算子の基本
LIKE演算子は、主にWHERE句内で使用されます。これにより、列の値が指定したパターンに一致する行を検索することができます。パターンは、以下の2つの特殊文字を使用して指定されます。
パターンを示す記号% _
これらの記号を使って、様々な検索パターンを作成することができます。
実践的な使用例
考えられる具体的な使用例をいくつか見てみましょう。以下の例では、myschool_db
データベースのstudents
テーブルを使用します。
例1: 名前が特定の文字で始まる学生を検索
例えば、名前が「山中」という文字で始まる学生を検索したい場合、以下のようなSQLクエリを使用します。
SELECT * FROM students
WHERE name
LIKE '
山中%
';
このクエリでは、「山中」で始まる任意の名前(山中信二など)を持つ学生のレコードを返します。
例2: 特定の文字を含む学生を検索
名前の中に「子」を含む学生を検索するには、以下のクエリを使用します。
SELECT * FROM students
WHERE name
LIKE '%子%';
このクエリでは、名前のどこかに「子」が含まれている(例: 村上祥子、本田恵子など)全ての学生を検索します。
例3: 名前の特定の位置にある文字による検索
名前の第二文字が「田」である学生を検索する場合、以下のようにします。
SELECT * FROM students
WHERE name
LIKE '_田%';
このクエリでは、第一文字は何でもよく、第二文字が「田」である名前(例: 本田恵子など)の学生を検索します。
まとめ
LIKE演算子は、パターンマッチングを行う際に非常に強力なツールです。特に、大規模なテキストデータを扱う際に、特定のパターンを持つデータを迅速に見つけ出すのに役立ちます。
例えば顧客のデータベースから「子」が付く人だけを探す、などの際に役に立ちますよ。