Sel"/> Sel">

Maison  >  Article  >  base de données  >  Qu'est-ce que l'opérateur MySQL REGEXP et comment gère-t-il la correspondance de modèles ?

Qu'est-ce que l'opérateur MySQL REGEXP et comment gère-t-il la correspondance de modèles ?

WBOY
WBOYavant
2023-09-11 10:29:101287parcourir

什么是 MySQL REGEXP 运算符以及它如何处理模式匹配?

MySQL prend en charge une autre opération de correspondance de modèles basée sur des expressions régulières et l'opérateur REGEXP. Vous trouverez ci-dessous un tableau de modèles qui peuvent être utilisés avec l'opérateur REGEXP pour gérer la correspondance de modèles.

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
|  101 | YashPal | Amritsar   | History    |
|  105 | Gaurav  | Chandigarh | Literature |
|  130 | Ram     | Jhansi     | Computers  |
|  132 | Shyam   | Chandigarh | Economics  |
|  133 | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
5 rows in set (0.00 sec)
Maintenant, voici quelques requêtes pour trouver le modèle "Nom" du tableau ci-dessus à l'aide de REGEXP -
mysql> Select Name from student_info WHERE Name REGEXP '^Y';
+---------+
| Name    |
+---------+
| YashPal |
+---------+
1 row in set (0.11 sec)
mysql> Select name from student_info WHERE Name REGEXP 'av';
+--------+
| name   |
+--------+
| Gaurav |
+--------+
1 row in set (0.00 sec)
mysql> Select name from student_info WHERE Name REGEXP '^[aeiou]|am$';
+-------+
| name  |
+-------+
| Ram   |
| Shyam |
+-------+
2 rows in set (0.00 sec)
La requête ci-dessus trouvera tous les noms commençant par une voyelle et se terminant par "am".
Motif

À quoi correspond le motif $

Fin de chaîne

N'importe lequel. personnage unique
[...] p>

Tout caractère répertorié entre crochets
[^...]

Non répertorié entre crochets Tout caractère
p1|p2|p3

correspond à n'importe quel motif p1, p2 ou p3
*

zéro ou plusieurs instances de l'élément précédent
+

Une ou plusieurs instances de l'élément précédent
{n}

n instances " Student_info" avec les données suivantes -
La requête ci-dessus trouvera tous les noms commençant par "Y".
mysql> Select name from student_info WHERE Name REGEXP 'am$';
+-------+
| name  |
+-------+
| Ram   |
| Shyam |
+-------+
2 rows in set (0.00 sec)

La requête ci-dessus trouvera tous les noms se terminant par "am".

La requête ci-dessus trouvera tous les noms contenant "av".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer