この記事で何を知れるか
- SQLでLIKE検索をするための手段。
LIKE検索
- 前方一致(hoge%)
- 後方一致(%hoge)
- 部分一致(%hoge%)
いずれの場合も、SQLで部分一致検索を行う場合は**%(ワイルドカード)**を使用する。
なお、前方一致と後方一致のワイルドカードの場所に注意。
部分一致検索をしてみる
こんなテーブルがあったとする。
departmentId | departmentName |
---|---|
1 | 総務部 |
2 | 人事部 |
3 | 経理部 |
4 | 営業部 |
5 | 営業支援部 |
(SQLはこちら)
insert into department (departmentId, departmentName) values ('1','総務部');
insert into department (departmentId, departmentName) values ('2','人事部');
insert into department (departmentId, departmentName) values ('3','経理部');
insert into department (departmentId, departmentName) values ('4','営業部');
insert into department (departmentId, departmentName) values ('5','営業支援部');
または
insert into department (departmentId, departmentName) values
('1','総務部'),
('2','人事部'),
('3','経理部'),
('4','営業部'),
('5','営業支援部');
このテーブルで「営業という文字の付く部」を検索したい場合、下記のようなSQLを発行する必要がある。
select A.departmentId, A.departmentName from department A where A.departmentName like '%営業%'
実行結果はこうなる。
departmentId | departmentName |
---|---|
4 | 営業部 |
5 | 営業支援部 |
後方一致検索をしてみる
このテーブルで「何らかの部の支援をしている○○支援部」を検索したい場合、下記のようなSQLを発行する必要がある。
select A.departmentId, A.departmentName from department A where A.departmentName like '%支援部';
実行結果はこうなる。
departmentId | departmentName |
---|---|
5 | 営業支援部 |