データの検索(あいまい検索)
任意の文字列で抽出する
あいまい検索にはLIKE句を使用します。
また、任意文字列での抽出には「%」を使用します。
SELECT * FROM テーブル名 WHERE 列1 LIKE ‘検索文字列%’;
それではサンプルを見てみましょう。
以下のようなcompanyテーブルがあります。
id | comp | dept | section |
---|---|---|---|
A00001 | ABC株式会社 | A部門 | A課 |
A00002 | ABCD株式会社 | A部門 | B課 |
A00010 | 株式会社XY | B部門 | C課 |
A00011 | 株式会社ZZZ | C部門 | D課 |
指定した列に任意の文字列を含んだデータを抽出するためのSQLです。
1 2 |
SELECT * FROM company WHERE comp LIKE '株式会社%'; |
上記を実行し、抽出された結果がこちらです。
id | comp | dept | section |
---|---|---|---|
A00010 | 株式会社XY | B部門 | C課 |
A00011 | 株式会社ZZZ | C部門 | D課 |
comp列の”株式会社”から始まる2行のデータが抽出されました。
任意の1文字で抽出する
任意の1文字での抽出には「_」(アンダースコア)を使用します。
SELECT * FROM テーブル名 WHERE 列1 LIKE ‘検索文字列_’;
それではサンプルを見てみましょう。
以下のようなcompanyテーブルがあります。
id | comp | dept | section |
---|---|---|---|
A00001 | ABC株式会社 | A部門 | A課 |
A00002 | ABCD株式会社 | A部門 | B課 |
A00010 | 株式会社XY | B部門 | C課 |
A00011 | 株式会社ZZZ | C部門 | D課 |
指定した列に任意の文字列+任意の1文字を含んだデータを抽出するためのSQLです。
1 2 |
SELECT * FROM company WHERE id LIKE 'A0000_'; |
上記を実行し、抽出された結果がこちらです。
id | comp | dept | section |
---|---|---|---|
A00001 | ABC株式会社 | A部門 | A課 |
A00002 | ABCD株式会社 | A部門 | B課 |
id列の”A0000″から始まる2行のデータが抽出されました。
なお、LIKE句の否定形は「NOT LIKE」になります。
今回ご紹介した中でも「%」での検索は使用頻度が高いので、ぜひ参考にしてみてください。