SQL ある文字列を含むレコードを検索するクエリ

SQL ある文字列を含むレコードを検索するクエリ

新人に質問されてサンプルクエリを作成したので、記述してます。 MYSQLをベースの DB「Percona」を利用してます。

環境

  • OS CentOS Linux release 8.0.1905 (Core)
  • Percona Server Ver 8.0.19-10

※CentOs8 に Percona Server のインストールはこちら

サンプル

テーブル「employees」のカラム「name(名前として利用)」に「山」が含まれているデータを抽出する場合
※ テーブル「employees」 データ一覧はページ最後に記載してます。

「LIKE」を使用して、下記のクエリで抽出できます。

SELECT id,name FROM employees
where name LIKE '%山%';

名前に漢字の「山」が含まれているnameが取得できる

名前の一文字目に「山」が入っている人を取得する場合は下記

SELECT id,name FROM employees
where name LIKE '山%';

一文字目に 「山」が含まれているnameが取得できる

名前の二文字目に「山」が入っている人を取得する場合は下記となります。

SELECT id,name FROM employees
where name LIKE '_山%';

二文字目に 「山」が含まれているnameが取得できる

逆に名前に「山」が含まれていないデータを抽出する場合は「NOT LIKE」を使用します。

SELECT id,name FROM employees
where name NOT LIKE '%山%';

名前に「山」が含まれていないnameが取得できます。

テーブル「employees」データ一覧

+----+---------------------+
| id | name                |
+----+---------------------+
|  1 | 杉山 涼平           |
|  2 | 宮沢 さゆり         |
|  3 | 近藤 直人           |
|  4 | 斉藤 くみ子         |
|  5 | 山口 直人           |
|  6 | 斉藤 英樹           |
|  7 | 井高 直子           |
|  8 | 山本 修平           |
|  9 | 鈴木 健一           |
| 10 | 田中 零             |
| 11 | 宮沢 裕美子         |
| 12 | 笹田 春香           |
| 13 | 坂本 くみ子         |
| 14 | 青山 明美           |
| 15 | 西之園 さゆり       |
| 16 | 高橋 陽子           |
| 17 | 桐山 幹             |
| 18 | 中津川 あすか       |
| 19 | 鈴木 明美           |
| 20 | 田中 淳             |
| 21 | 山本 学             |
| 22 | 石田 加奈           |
| 23 | 村山 京助           |
| 24 | 山岸 花子           |
| 25 | 田中 結衣           |
| 26 | 原田 さゆり         |
| 27 | 佐々木 京助         |
| 28 | 木村 翔太           |
| 29 | 桐山 香織           |
| 30 | 原田 花子           |
+----+---------------------+