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$';