Mysql-regexps
提供:Dev Guides
MySQL-正規表現
- LIKE …%を使用したMySQLパターンマッチングを見ました。 MySQLは、正規表現と *REGEXP 演算子に基づく別のタイプのパターンマッチング操作をサポートしています。 PHPまたはPERLを知っている場合、このマッチングは正規表現のスクリプト作成と同じであるため、理解するのは非常に簡単です。
以下は、 REGEXP 演算子と共に使用できるパターンの表です。
Pattern | What the pattern matches |
---|---|
^ | Beginning of string |
$ | End of string |
. | Any single character |
[…] | Any character listed between the square brackets |
[^…] | Any character not listed between the square brackets |
p1 | p2 |
p3 | Alternation; matches any of the patterns p1, p2, or p3 |
* | Zero or more instances of preceding element |
+ | One or more instances of preceding element |
{n} | n instances of preceding element |
\{m,n} | m through n instances of preceding element |
例
上記の表に基づいて、要件を満たすためにさまざまなタイプのSQLクエリを作成できます。 ここに、あなたの理解のためにいくつかをリストしています。
*person_tbl* というテーブルがあり、 *name* というフィールドがあるとします-
*'st'* で始まるすべての名前を検索するクエリ-
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
*'ok'* で終わるすべての名前を検索するクエリ-
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
*'mar'* を含むすべての名前を検索するクエリ-
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
母音で始まり 'ok' で終わるすべての名前を検索するクエリ-
mysql> SELECT FirstName FROM intque.person_tbl WHERE FirstName REGEXP '^[aeiou].*ok$';