目次

ワイルドカードを利用して文字列フィールドを検索する - SQL

ワイルドカードを利用して文字列フィールドを検索するSQL分を紹介します。

概要

文字列フィールドでワイルドカードを利用して検索する場合には LIKE 演算子を利用します。

書式

SELECT ... WHERE (列名) LIKE (検索式)

ワイルドカードには以下の文字を利用します。
ワイルドカード文字 意味
% 0文字以上の任意の文字列
_ 任意の1文字

次のテーブルを用意します。
Products テーブル
idmodelnameclasscategoryprice
1C-XM01モーダンチェアホームチェア56000
2X-XD05ラージデスクオフィステーブル87000
3A-DA40ラウンドダイニングチェアホームチェア28000
4O-XX100ナチュラルオフィスオフィスチェア13800
5R-D400ラウンドダイニングテーブルホームテーブル128000
6R7000ウッドキャビネットオフィスその他32000
7B-200リネンベッドホームベッド184500
8B-250ホワイトダブルベッドホームベッド324850
9W-80ワーキングチェアオフィスチェア45000
10EG-10Xエルゴノミクスデスクオフィステーブル88500
11NC-208ナチュラルウッドチェアホームチェア128000

SQL文 例1

以下のSQL文を実行します。
SELECT * FROM Products WHERE name LIKE '%ダイニング'

解説

name LIKE '%ダイニング' の条件式によりname列の値に"ダイニング"の文字列を含むレコードを検索結果として取得します。

結果

結果は次の通りです。name列の文字列に"ダイニング"を含むレコードを検索結果として取得しています。
id model name class category price
3A-DA40ラウンドダイニングチェアホームチェア28000
5R-D400ラウンドダイニングテーブルホームテーブル128000

SQL文 例2

以下のSQL文を実行します。
SELECT * FROM ProductsB WHERE model LIKE 'B-2_0%'

結果

結果は次の通りです。model列の文字が"B-2?0"の形式のレコードを検索結果として取得します。
id model name class category price
7B-200リネンベッドホームベッド184500
8B-250ホワイトダブルベッドホームベッド324850

補足
条件の末尾に"%"がない、以下のSQLを実行した場合、レコードが検索されない場合があります。 これはフィールドのデータ型による影響です。詳しくはこちらの記事を参照してください。
SELECT * FROM ProductsB WHERE model LIKE 'B-2_0'

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-01-07
作成日: 2023-10-19
iPentec all rights reserverd.