SQLのワイルドカード
ワイルドカードは、他の文字列の代わりに使用することができます。
SQLのワイルドカード
SQLでは、ワイルドカード文字を使用してSQLのLIKE演算子を併用します。
テーブル内のデータのためのSQLワイルドカード検索。
SQLでは、次のワイルドカードを使用できます。
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[ charlist ] | 字符列中的任何单一字符 |
[^ charlist ] 或 [! charlist ] |
不在字符列中的任何单一字符 |
デモ・データベース
このチュートリアルでは、w3bigサンプルデータベースを使用します。
以下は、選択した「ウェブサイト」のテーブルデータです。
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 本教程 | http://www.w3big.com/ | 4689 | CN | | 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 "を開始します:
例
ウェブサイトSELECT * FROM
WHERE 'HTTPS%'のようなURL。
WHERE 'HTTPS%'のようなURL。
実行出力:
すべてのサイトの次のSQL文に含まれるモード選択のURL「○○」:
例
SELECT * FROM Websites
WHERE url LIKE '%oo%';
WHERE url LIKE '%oo%';
実行出力:
SQL _ワイルドカードを使用します
任意の文字を開始するには、名前を選択するには、次のSQL文は、すべての顧客を「oogle」:
例
ウェブサイトSELECT * FROM
WHERE名LIKE '_oogle';
WHERE名LIKE '_oogle';
実行出力:
すべてのWebサイトのための、任意の文字、その後、「○」は、任意の文字、その後、「ル」「G」スタート、に次のSQL文を選択して名前:
例
ウェブサイトSELECT * FROM
WHERE名LIKE 'G_o_le';
WHERE名LIKE 'G_o_le';
実行出力:
SQL [CHARLIST]ワイルドカードを使用します
MySQLは正規表現を操作するREGEXPまたはNOT REGEXP演算子(またはRLIKEおよびNOT RLIKE)を使用します。
次のSQL文を選択して名前、すべてのサイトに "G"、 "F"または "s"が始まります。
例
ウェブサイトSELECT * FROM
WHERE名REGEXP '^ [のGF]';
WHERE名REGEXP '^ [のGF]';
実行出力:
H文字をウェブサイトで始まる次のSQL文を選択して名前:
例
SELECT * FROM Websites
WHERE name REGEXP '^[A-H]';
WHERE name REGEXP '^[A-H]';
実行出力:
名前を選択するには、次のSQL文は、Hのウェブサイトへの手紙で始まっていません。
例
ウェブサイトSELECT * FROM
WHERE名REGEXP '^ [^ AH]';
WHERE名REGEXP '^ [^ AH]';
実行出力: