Maison  >  Article  >  base de données  >  Comment interroger des données contenant une chaîne spécifiée dans MySQL

Comment interroger des données contenant une chaîne spécifiée dans MySQL

青灯夜游
青灯夜游original
2022-01-05 16:23:4124891parcourir

Dans MySQL, vous pouvez utiliser l'instruction "SELECT" et le mot-clé LIKE pour interroger les données contenant la chaîne spécifiée. Le mot-clé LIKE est principalement utilisé pour rechercher le contenu spécifié dans le champ correspondant. La syntaxe "SELECT nom du champ FROM table". nom WHERE nom du champ [NOT] LIKE 'string';".

Comment interroger des données contenant une chaîne spécifiée dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Dans MySQL, vous pouvez utiliser l'instruction "SELECT" et le mot-clé LIKE pour interroger des données contenant une chaîne spécifiée.

Le mot-clé LIKE est principalement utilisé pour rechercher le contenu spécifié dans le champ correspondant. Le format de la syntaxe est le suivant :

[NOT] LIKE  '字符串'

Parmi eux :

  • NOT : Paramètre facultatif, la condition est remplie lorsque le contenu du champ ne correspond pas à la chaîne spécifiée.

  • String : Spécifiez la chaîne à correspondre. "String" peut être une chaîne complète ou contenir des caractères génériques.

Le mot-clé LIKE prend en charge le signe de pourcentage "%" et les caractères génériques de soulignement "_".

Wildcard est une instruction spéciale, principalement utilisée pour les requêtes floues. Lorsque vous ne connaissez pas les vrais caractères ou que vous êtes trop paresseux pour saisir le nom complet, vous pouvez utiliser des caractères génériques pour remplacer un ou plusieurs vrais caractères.

Exemples d'utilisation de l'instruction "SELECT" + mot-clé LIKE

Requête avec le caractère générique "%" %”通配符的查询

“%”是 MySQL 中最常用的通配符,它能代表任何长度的字符串,字符串的长度可以为 0。例如,a%b表示以字母 a 开头,以字母 b 结尾的任意长度的字符串。该字符串可以代表 ab、acb、accb、accrb 等字符串。

例 1

在 tb_students_info 表中,查找所有以字母“T”开头的学生姓名,SQL 语句和运行结果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE 'T%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.12 sec)

可以看到,查询结果中只返回了以字母“T”开头的学生姓名。

注意:匹配的字符串必须加单引号或双引号。

NOT LIKE 表示字符串不匹配时满足条件。

例 2

在 tb_students_info 表中,查找所有不以字母“T”开头的学生姓名,SQL 语句和运行结果如下。

mysql> SELECT NAME FROM tb_students_info
    -> WHERE NAME NOT LIKE 'T%';
+-------+
| NAME  |
+-------+
| Dany  |
| Green |
| Henry |
| Jane  |
| Jim   |
| John  |
| Lily  |
| Susan |
+-------+
8 rows in set (0.00 sec)

可以看到,查询结果中返回了不以字母“T”开头的学生姓名。

例 3

在 tb_students_info 表中,查找所有包含字母“e”的学生姓名,SQL 语句和运行结果如下。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '%e%';
+-------+
| name  |
+-------+
| Green |
| Henry |
| Jane  |
+-------+
3 rows in set (0.00 sec)

可以看到,查询结果中返回了所有包含字母“e”的学生姓名。

带有“_

"%" est le plus courant dans MySQL A Caractère générique couramment utilisé, il peut représenter une chaîne de n'importe quelle longueur et la longueur de la chaîne peut être 0. Par exemple, a%b représente une chaîne de n'importe quelle longueur commençant par la lettre a et se terminant par la lettre b. Cette chaîne peut représenter des chaînes telles que ab, acb, accb, accrb, etc.

Exemple 1

Dans la table tb_students_info, recherchez tous les noms d'étudiants commençant par la lettre "T". L'instruction SQL et les résultats en cours d'exécution sont les suivants.

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '____y';
+-------+
| name  |
+-------+
| Henry |
+-------+
1 row in set (0.00 sec)

Vous pouvez voir que seuls les noms d'étudiants commençant par la lettre "T" sont renvoyés dans les résultats de la requête.

Remarque : La chaîne correspondante doit être placée entre guillemets simples ou doubles. NOT LIKE signifie que la condition est remplie lorsque la chaîne ne correspond pas.

Exemple 2

Dans la table tb_students_info, recherchez tous les noms d'étudiants qui ne commencent pas par la lettre "T". L'instruction SQL et les résultats d'exécution sont les suivants.

mysql> SELECT name FROM tb_students_info WHERE name LIKE 't%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.00 sec)
mysql> SELECT name FROM tb_students_info WHERE name LIKE BINARY 't%';
Empty set (0.01 sec)

Vous pouvez voir que les résultats de la requête ont renvoyé des noms d'élèves qui ne commencent pas par la lettre "T".

Exemple 3

Dans la table tb_students_info, recherchez tous les noms d'étudiants contenant la lettre « e ». L'instruction SQL et les résultats d'exécution sont les suivants. rrreee

Vous pouvez voir que tous les noms d'élèves contenant la lettre « e » sont renvoyés dans les résultats de la requête. 🎜🎜🎜🎜Requête avec le caractère générique "🎜🎜_" 🎜🎜🎜🎜 "_" ne peut représenter qu'un seul caractère et la longueur du caractère ne peut pas être 0. Par exemple, a_b peut représenter des chaînes telles que acb, adb, aub, etc. 🎜🎜🎜Exemple 4🎜🎜🎜Dans la table tb_students_info, recherchez tous les noms d'étudiants qui se terminent par la lettre « y » et qui n'ont que 4 lettres devant « y ». L'instruction SQL et les résultats d'exécution sont les suivants. 🎜rrreee🎜🎜🎜LIKE est sensible à la casse🎜🎜🎜🎜Par défaut, le mot-clé LIKE n'est pas sensible à la casse lors de la correspondance des caractères. Si le respect de la casse est requis, le mot-clé BINARY peut être ajouté. 🎜🎜🎜Exemple 5🎜🎜🎜Dans la table tb_students_info, recherchez tous les noms d'étudiants commençant par la lettre "t". Les instructions SQL sensibles à la casse et insensibles à la casse et les résultats en cours d'exécution sont les suivants. 🎜rrreee🎜Comme vous pouvez le voir d'après les résultats, après sensibilité à la casse, les enregistrements tels que "Tom" et "Thomas" ne seront pas mis en correspondance. 🎜🎜【Recommandation associée : 🎜tutoriel vidéo mysql🎜】🎜

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:
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