Latest web development tutorials

MySQL Regular Expressions

Dans la section précédente , nous avons appris à travers le MySQL ... COMME% pour la correspondance floue.

MySQL supporte également d'autres correspondance d'expression régulière, MySQL opérateur REGEXP à utiliser les expressions régulières.

Si vous connaissez PHP ou Perl, l'opération est très simple, parce que MySQL expression régulière correspondant semblable à ces scripts.

Dans le tableau ci-dessous en mode normal, il peut être utilisé dans l'opérateur de EXPRAT.

mode description
^ Correspond au début de la chaîne. Si vous définissez la propriété multiligne de l'objet RegExp, ^ correspond également '\ n' la position ou '\ r' après.
$ Faites correspondre l'extrémité d'entrée de la chaîne. Si vous définissez l'objet propriété RegExp multiligne, également correspondant à $ position '\ n' ou '\ r' avant.
. Correspond à tout caractère sauf "\ n" est. Pour faire correspondre notamment '\ n', y compris les caractères, comme l'utilisation de «[. \ N]« mode.
[...] Jeu de caractères. Correspond à tout caractère inclus. Par exemple, «[abc] 'correspond à" plain "dans le' a '.
[^ ...] jeu de caractères négatifs. Correspond à tout caractère qui ne sont pas inclus. Par exemple, «[^ abc]» correspond à «simple» dans le «p».
p1 | p2 | p3 Match p1, p2 ou p3. Par exemple, 'z | alimentaire »peut correspondre à la" z "ou" alimentaire ". '(Z | f) ood' correspondra "Zood" ou "alimentaire".
* Correspond les subexpression zéro ou plusieurs fois précédentes. Par exemple, zo * peut correspondre à la "z" et "zoo". * Equivalent à {0,}.
+ Correspond les subexpression une ou plusieurs fois précédentes. Par exemple, 'zo +' correspondra "zo" et "zoo", mais ne peut pas correspondre à la "z". + Est équivalente à {1}.
{N} n est un entier non négatif. Matching les n fois déterminés. Par exemple, 'o {2}' ne correspond pas au "Bob" dans le 'o', mais peut correspondre à la «nourriture» dans les deux o.
{N, m} m et n sont des nombres entiers non négatifs, où n <= m. Trouver au moins n fois et correspond à m fois.

Exemples

Une fois que vous savez des besoins plus réguliers, nous pouvons être plus à leurs propres besoins pour écrire instruction SQL avec une expression régulière. Ci-dessous, nous allons énumérer quelques petits exemples (nom de la table: person_tbl) pour approfondir notre compréhension:

Trouvez tous le nom du champ de données pour 'st' commençant par:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Trouvez tous le nom du champ de données pour 'ok' pour la fin:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Trouver un champ de nom contient 'mar' cordes toutes les données:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Trouver un champ de nom pour commencer avec des voyelles et la fin «ok» de la chaîne de toutes les données:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';