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