SQL ワイルドカード
ワイルドカードは、文字列内の他の任意の文字を置き換えるために使用できます。
SQL ワイルドカード
SQL では、ワイルドカードは SQL LIKE 演算子と一緒に使用します。
SQL ワイルドカードは、テーブル内のデータを検索するために使用されます。
SQL では、次のワイルドカードを使用できます:
| ワイルドカード | 説明 |
|---|---|
| % | 0 個以上の文字を置き換える |
| _ | 1 つの文字を置き換える |
| [charlist] | 文字リスト内の任意の 1 文字 |
| [^charlist] 或 [!charlist] |
文字リスト内にない任意の 1 文字 |
デモデータベース
このチュートリアルでは、サンプル サンプルデータベースを使用します。
以下は "Websites" テーブルから選んだデータです。
mysql> SELECT * FROM Websites; +----+---------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+---------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | サンプル | http://www.example.com/ | 5000 | USA | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
SQL % ワイルドカードの使用
次の SQL 文は、url が文字 "https" で始まるすべての Web サイトを選択します。
例
WHERE url LIKE 'https%';
実行出力結果:
次の SQL 文は、url にパターン "oo" を含むすべての Web サイトを選択します。
例
WHERE url LIKE '%oo%';
実行出力結果:
SQL _ ワイルドカードの使用
次の SQL 文は、name が任意の 1 文字で始まり、その後に "oogle" が続くすべての顧客を選択します。
例
WHERE name LIKE '_oogle';
実行出力結果:
次の SQL 文は、name が "G" で始まり、任意の 1 文字、次に "o"、任意の 1 文字、次に "le" が続くすべての Web サイトを選択します。
例
WHERE name LIKE 'G_o_le';
実行出力結果:
SQL [charlist] ワイルドカードの使用
SQL では、[charlist] ワイルドカードは文字のリストを指定し、そのリスト内の任意の 1 文字を照合するために使用されます。
これは通常、WHERE 句などでパターンマッチングのために LIKE 演算子と一緒に使用されます。
次の SQL 文は、name が "G"、"F"、または "s" で始まるすべての Web サイトを選択します。
例
WHERE name REGEXP '^[GFs]';
実行出力結果:
次の SQL 文は、name が A から H の文字で始まる Web サイトを選択します。
例
WHERE name REGEXP '^[A-H]';
実行出力結果:
次の SQL 文は、name が A から H の文字で始まらない Web サイトを選択します。
例
WHERE name REGEXP '^[^A-H]';
実行出力結果: