Maison >base de données >tutoriel mysql >Comment puis-je interroger efficacement PostgreSQL pour les valeurs commençant par « 00 » et un troisième caractère différent de zéro ?
Expression régulière dans la clause LIKE de PostgreSQL
Cette requête cherche à faire correspondre les valeurs commençant par « 00 » et ayant un troisième caractère différent de « 0 » ', comme dans '0090D0DF143A'. Cependant, la requête suivante ne parvient pas à correspondre :
SELECT * FROM table WHERE value LIKE '00[1-9]%'
Pour résoudre ce problème, envisagez d'utiliser l'opérateur d'expression régulière « ~ » avec une expression entre crochets en dehors de la clause LIKE. Cependant, pour des performances optimales, une combinaison de clauses LIKE et NOT LIKE est recommandée :
SELECT * FROM tbl WHERE value LIKE '00%' AND value NOT LIKE '000%'
La clause LIKE réduit efficacement les correspondances potentielles avec une expression ancrée à gauche, tandis que la clause NOT LIKE affine davantage la résultats. Postgres peut utiliser des index pour de telles expressions, ce qui accélère l'exécution des requêtes.
De plus, il est crucial d'ancrer le modèle au début de la chaîne en utilisant '^' dans les expressions régulières et d'utiliser des expressions entre crochets ' 1' pour correspondre à n'importe quel caractère autre que '0'.
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!