Maison base de données tutoriel mysql MySql官方手册学习笔记2 MySql的模糊查询和正则表达式_MySQL

MySql官方手册学习笔记2 MySql的模糊查询和正则表达式_MySQL

Jun 01, 2016 pm 01:23 PM
表达式

正则表达式

bitsCN.com

SQL模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零字符)。在 MySQL中,SQL的模式默认是忽略大小写的。下面给出一些例子。注意使用SQL模式时,不能使用=或!=;而应使用LIKE或NOT LIKE比较操作符。

要想找出以“b”开头的名字:

 

mysql> <strong>SELECT * FROM pet WHERE name LIKE 'b%';</strong>
Copier après la connexion
+--------+--------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name   | owner  | species | sex  | birth      | death      |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL       |
Copier après la connexion
Copier après la connexion
| Bowser | Diane  | dog     | m    | 1989-08-31 | 1995-07-29 |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

要想找出以“fy”结尾的名字:

 

mysql> <strong>SELECT * FROM pet WHERE name LIKE '%fy';</strong>
Copier après la connexion
+--------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name   | owner  | species | sex  | birth      | death |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Fluffy | Harold | cat     | f    | 1993-02-04 | NULL  |
Copier après la connexion
Copier après la connexion
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL  |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

要想找出包含“w”的名字:

 

mysql> <strong>SELECT * FROM pet WHERE name LIKE '%w%';</strong>
Copier après la connexion
+----------+-------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name     | owner | species | sex  | birth      | death      |
Copier après la connexion
Copier après la connexion
+----------+-------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Claws    | Gwen  | cat     | m    | 1994-03-17 | NULL       |
Copier après la connexion
Copier après la connexion
| Bowser   | Diane | dog     | m    | 1989-08-31 | 1995-07-29 |
Copier après la connexion
Copier après la connexion
| Whistler | Gwen  | bird    | NULL | 1997-12-09 | NULL       |
Copier après la connexion
Copier après la connexion
+----------+-------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

要想找出正好包含5个字符的名字,使用“_”模式字符:

 

mysql> <strong>SELECT * FROM pet WHERE name LIKE '_____';</strong>
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name  | owner  | species | sex  | birth      | death |
Copier après la connexion
Copier après la connexion
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
Copier après la connexion
Copier après la connexion
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正则表达式的一些字符是:

         ‘.'匹配任何单个的字符。

         字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”“b”“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。

         “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。

  • 如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。
  • 为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”在模式的结尾用“$”

为了说明扩展正则表达式如何工作,下面使用REGEXP重写上面所示的LIKE查询:

为了找出以“b”开头的名字,使用“^”匹配名字的开始:

 

mysql> <strong>SELECT * FROM pet WHERE name REGEXP '^b';</strong>
Copier après la connexion
+--------+--------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name   | owner  | species | sex  | birth      | death      |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL       |
Copier après la connexion
Copier après la connexion
| Bowser | Diane  | dog     | m    | 1989-08-31 | 1995-07-29 |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

如果你想强制使REGEXP比较区分大小写,使用BINARY关键字使其中一个字符串变为二进制字符串。该查询只匹配名称首字母的小写‘b'。

 

mysql> <strong>SELECT * FROM pet WHERE name REGEXP BINARY '^b';</strong>
Copier après la connexion
<strong> </strong>
Copier après la connexion

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

 

mysql> <strong>SELECT * FROM pet WHERE name REGEXP 'fy$';</strong>
Copier après la connexion
+--------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name   | owner  | species | sex  | birth      | death |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Fluffy | Harold | cat     | f    | 1993-02-04 | NULL  |
Copier après la connexion
Copier après la connexion
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL  |
Copier après la connexion
Copier après la connexion
+--------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

为了找出包含一个“w”的名字,使用以下查询:

 

mysql> <strong>SELECT * FROM pet WHERE name REGEXP 'w';</strong>
Copier après la connexion
+----------+-------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name     | owner | species | sex  | birth      | death      |
Copier après la connexion
Copier après la connexion
+----------+-------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Claws    | Gwen  | cat     | m    | 1994-03-17 | NULL       |
Copier après la connexion
Copier après la connexion
| Bowser   | Diane | dog     | m    | 1989-08-31 | 1995-07-29 |
Copier après la connexion
Copier après la connexion
| Whistler | Gwen  | bird    | NULL | 1997-12-09 | NULL       |
Copier après la connexion
Copier après la connexion
+----------+-------+---------+------+------------+------------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

既然如果一个正则表达式出现在值的任何地方,其模式匹配了,就不必在先前的查询中在模式的两侧放置一个通配符以使得它匹配整个值,就像你使用了一个SQL模式那样。

为了找出包含正好5个字符的名字,使用“^”“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:

 

mysql> <strong>SELECT * FROM pet WHERE name REGEXP '^.....$';</strong>
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name  | owner  | species | sex  | birth      | death |
Copier après la connexion
Copier après la connexion
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
Copier après la connexion
Copier après la connexion
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
 
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

你也可以使用“{n}”“重复n次”操作符重写前面的查询:

 

mysql> <strong>SELECT * FROM pet WHERE name REGEXP '^.{5}$';</strong>
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| name  | owner  | species | sex  | birth      | death |
Copier après la connexion
Copier après la connexion
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
Copier après la connexion
Copier après la connexion
Copier après la connexion
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
Copier après la connexion
Copier après la connexion
Copier après la connexion
+-------+--------+---------+------+------------+-------+
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
bitsCN.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre les erreurs de syntaxe des expressions Python ? Comment résoudre les erreurs de syntaxe des expressions Python ? Jun 24, 2023 pm 05:04 PM

Python, en tant que langage de programmation de haut niveau, est facile à apprendre et à utiliser. Une fois que vous aurez besoin d’écrire un programme Python, vous rencontrerez inévitablement des erreurs de syntaxe, et les erreurs de syntaxe d’expression sont courantes. Dans cet article, nous verrons comment résoudre les erreurs de syntaxe d’expression en Python. Les erreurs de syntaxe d'expression sont l'une des erreurs les plus courantes en Python et elles sont généralement causées par une utilisation incorrecte de la syntaxe ou par des composants nécessaires manquants. En Python, les expressions sont généralement constituées de nombres, de chaînes, de variables et d'opérateurs. le plus courant

En C et C++, la virgule est utilisée pour séparer les expressions ou les instructions En C et C++, la virgule est utilisée pour séparer les expressions ou les instructions Sep 09, 2023 pm 05:33 PM

En C ou C++, la virgule "," a différentes utilisations. Ici, nous apprendrons comment les utiliser. Virgules comme opérateurs. L'opérateur virgule est un opérateur binaire qui évalue le premier opérande, ignore le résultat, puis évalue le deuxième opérande et renvoie la valeur. L'opérateur virgule a la priorité la plus basse en C ou C++. Exemple #include<stdio.h>intmain(){ intx=(50,60); inty=(func1(),func2());} Ici, 60 sera attribué à x. Pour l'instruction suivante, func1( sera exécuté en premier

Introduction aux expressions de fonctions exponentielles en langage C Introduction aux expressions de fonctions exponentielles en langage C Feb 18, 2024 pm 01:11 PM

Introduction à la façon d'écrire des expressions de fonctions exponentielles en langage C et exemples de code Qu'est-ce qu'une fonction exponentielle ? La fonction exponentielle est un type courant de fonction en mathématiques. Elle peut être exprimée sous la forme f(x)=a^x, où. a est la base et x est l'exposant. Les fonctions exponentielles sont principalement utilisées pour décrire la croissance exponentielle ou la décroissance exponentielle. Exemple de code de fonction exponentielle En langage C, nous pouvons utiliser la fonction pow() dans la bibliothèque mathématique pour calculer la fonction exponentielle. Voici un exemple de programme : #include.

expression lambda en Java expression lambda en Java Jun 09, 2023 am 10:17 AM

Expressions lambda en Java Avec la sortie de Java 8, les expressions lambda sont devenues l'un des sujets les plus préoccupants et discutés parmi les développeurs Java. Les expressions Lambda peuvent simplifier les méthodes d'écriture fastidieuses des programmeurs Java et peuvent également améliorer la lisibilité et la maintenabilité des programmes. Dans cet article, nous examinerons en profondeur les expressions lambda en Java et comment elles offrent une expérience de programmation plus simple et plus intuitive dans le code Java.

Boucler sur une collection à l'aide d'expressions lambda Boucler sur une collection à l'aide d'expressions lambda Feb 19, 2024 pm 07:32 PM

Une expression lambda est une fonction anonyme qui peut être facilement utilisée pour parcourir une collection. Dans cet article, nous présenterons comment utiliser les expressions lambda pour parcourir des collections et fournirons des exemples de code spécifiques. En Python, le format syntaxique d'une expression lambda est le suivant : Liste de paramètres lambda : La liste de paramètres d'une expression expression lambda peut contenir un ou plusieurs paramètres, séparés par des virgules. L'expression est la valeur de retour de la fonction lambda. Regardons un exemple simple ci-dessous, en supposant

Guide avancé des expressions Python Lambda : du débutant à la maîtrise Guide avancé des expressions Python Lambda : du débutant à la maîtrise Feb 24, 2024 pm 03:31 PM

Introduction et syntaxe de base des expressions Lambda Les expressions Lambda se composent d'une liste de paramètres de fonction, de deux points et d'un corps de fonction. La liste des paramètres de la fonction est la même que celle d'une fonction ordinaire et le corps de la fonction est une expression plutôt qu'un ensemble d'instructions. #Exemple : renvoie une fonction qui reçoit deux nombres et renvoie leur somme sum=lambdax,y:x+y Scénarios d'application des expressions Lambda Les expressions Lambda sont très adaptées pour être utilisées comme fonctions de rappel, fonctions de filtrage et fonctions de mappage. Fonction de rappel : Une fonction de rappel est une fonction appelée dans une autre fonction. Les expressions Lambda facilitent la création de fonctions de rappel sans déclarer leurs noms. Fonction de filtre : la fonction de filtre est utilisée pour filtrer complètement

Expression Java Lambda en pratique : percer les mystères de la programmation fonctionnelle avec du code Expression Java Lambda en pratique : percer les mystères de la programmation fonctionnelle avec du code Feb 26, 2024 am 10:25 AM

L'expression Lambda, comme son nom l'indique, est une fonction anonyme avec le symbole de flèche (->) comme noyau. Il vous permet de transmettre des blocs de code comme arguments à d'autres méthodes ou de les stocker dans des variables pour une utilisation ultérieure. La syntaxe des expressions Lambda est concise et facile à comprendre, et elle est très adaptée au traitement des flux de données et au calcul parallèle. 1. La syntaxe de base de l'expression Lambda La syntaxe de base de l'expression Lambda est la suivante : (liste de paramètres) -> {bloc de code} Parmi eux, la liste de paramètres et le bloc de code sont facultatifs. S'il n'y a qu'un seul paramètre, les parenthèses peuvent être omises. Si le bloc de code ne comporte qu’une seule ligne, les accolades peuvent être omises. Par exemple, le bloc de code suivant utilise une expression Lambda pour ajouter 1 à un nombre : Liste

Le bloc d'instructions try dans PHP8.0 prend en charge les expressions Le bloc d'instructions try dans PHP8.0 prend en charge les expressions May 14, 2023 am 08:12 AM

Avec le développement rapide de la technologie informatique, les langages de programmation sont constamment mis à niveau et améliorés. Parmi eux, PHP, en tant que langage de développement Web couramment utilisé, innove et lance constamment de nouvelles versions. Récemment, la sortie de la version PHP8.0 a attiré une large attention. Parmi elles, les améliorations apportées au mécanisme de gestion des exceptions dans la nouvelle version ont attiré beaucoup d'attention. Cet article se concentrera sur le sujet de la prise en charge des expressions dans le bloc d'instructions try de PHP8.0. 1. Améliorations du mécanisme de gestion des exceptions de PHP8.0 Dans les versions précédentes, P

See all articles