SQL ワイルドカード
ワイルドカード文字を使用して、文字列内の他の文字を置き換えることができます。
SQL ワイルドカード
SQL では、ワイルドカードは SQL LIKE 演算子とともに使用されます。
SQL ワイルドカードは、テーブル内のデータを検索するために使用されます。
SQL では、次のワイルドカード文字を使用できます:
ワイルドカード | 説明 |
---|---|
% | 0 個以上の文字を置換 |
_ | 1 文字を置換 |
[ charlist] | 文字リスト内の任意の 1 文字 |
[^charlist] または [!charlist] | 文字リストにない任意の 1 文字 |
デモデータベース
このチュートリアルでは、php サンプル データベースを使用します。
以下は「ウェブサイト」テーブルから選択されたデータです:
+----+-------------+------------ - ---------------+------+-----------+
| 国名 |
-- -+---------------+---------------+----- --+------+
| グーグル https://www.google.cm/ | タオバオ | | 13 | 中国語のウェブサイト |
| | フェイスブック | https://www.facebook.com/ |
| 0 | --------+--------------------------+----------+--- - ----------+
SQL % ワイルドカードを使用します
| 国名 |
-- -+---------------+---------------+----- --+------+
| グーグル https://www.google.cm/ | タオバオ | | 13 | 中国語のウェブサイト |
| | フェイスブック | https://www.facebook.com/ |
| 0 | --------+--------------------------+----------+--- - ----------+
SQL % ワイルドカードを使用します
例 SELECT * FROM Websites
WHERE url LIKE 'https%';実行出力結果:
例SELECT * FROM Websites次の SQL ステートメントは、URL にパターン「oo」が含まれるすべての Web サイトを選択します:
WHERE url LIKE ' %oo%';実行出力結果:
MySQLで
例
SQL _ ワイルドカードの使用
次の SQL ステートメントは、名前が任意の文字で始まり、その後に「oogle」が続くすべてのクライアントを選択します:
例
SELECT * FROM Websites
WHERE name LIKE '_oogle';
WHERE name LIKE '_oogle';
実行出力結果:
次のSQL文は、名前が「G」、次に任意の文字、「o」、次に任意の文字、「le」で始まるすべてのWebサイトを選択します。
SELECT * FROM Websites
SQL [charlist]ワイルドカードを使用WHERE name LIKE 'G_o_le';
実行出力結果:
MySQLで
REGEXP
を使用NOT REGEXP 演算子 (またはRLIKE および NOT RLIKE) を使用して正規表現を操作します。 次の SQL ステートメントは、名前が「G」、「F」、または「s」で始まるすべての Web サイトを選択します:
例
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
実行出力結果:
次の SQL ステートメントは、名前が A から H の文字で始まる Web サイトを選択します。
次の SQL ステートメントは、名前が A ~ H の文字で始まらない Web サイトを選択します。
例
SELECT * FROM Websites
WHERE name REGEXP '^[^A-H]';実行出力結果: