Maison > base de données > tutoriel mysql > Comment utiliser la fonction FIND_IN_SET de MySQL pour savoir si une certaine valeur existe dans une liste de chaînes

Comment utiliser la fonction FIND_IN_SET de MySQL pour savoir si une certaine valeur existe dans une liste de chaînes

WBOY
Libérer: 2023-07-24 20:17:07
original
990 Les gens l'ont consulté

Comment utiliser la fonction FIND_IN_SET de MySQL pour savoir si une certaine valeur existe dans une liste de chaînes

Introduction :
MySQL est un système de gestion de base de données relationnelle couramment utilisé, qui fournit de nombreuses fonctions et opérateurs puissants pour manipuler les données. Parmi elles, la fonction FIND_IN_SET est une fonction de recherche de chaîne couramment utilisée qui peut être utilisée pour déterminer si une valeur existe dans une liste de chaînes séparées par des virgules. Cet article présentera en détail comment utiliser la fonction FIND_IN_SET et fournira des exemples de code pertinents.

Syntaxe de la fonction FIND_IN_SET :
FIND_IN_SET(str, strlist)

  • str : la chaîne ou l'expression à rechercher ;
  • strlist : une liste de chaînes séparées par des virgules.

La fonction FIND_IN_SET renvoie une valeur entière représentant la position où se trouve la valeur dans la liste de chaînes. Si la valeur n'est pas trouvée, 0 est renvoyé.

Exemple de code :
Supposons que nous ayons une table nommée étudiants qui contient des informations sur les cours sélectionnés par chaque étudiant. La structure du tableau est la suivante : students 的表,其中包含了每个学生所选课程的信息。表结构如下:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    courses VARCHAR(100)
);
Copier après la connexion

现在,我们想要在 courses 字段中查找是否包含某个具体的课程,可以使用 FIND_IN_SET 函数来实现。

首先,插入一些测试数据:

INSERT INTO students (name, courses)
VALUES ('小明', '语文,数学,英语'),
       ('小红', '数学,化学,物理'),
       ('小刚', '英语,历史,地理');
Copier après la connexion

接下来,我们可以使用以下代码来查询某个学生是否选修了某个具体的课程:

SET @course = '数学';
SELECT id, name
FROM students
WHERE FIND_IN_SET(@course, courses) > 0;
Copier après la connexion

在以上代码中,将要查找的课程名称赋给了变量 @course。然后,在 SELECT 语句中,使用 FIND_IN_SET 函数来判断变量 @course 是否存在于 courses

+----+--------+
| id | name   |
+----+--------+
| 1  | 小明   |
| 2  | 小红   |
+----+--------+
Copier après la connexion
Maintenant, nous voulons savoir si un cours spécifique est inclus dans le champ cours. Nous pouvons utiliser la fonction FIND_IN_SET pour y parvenir.

Tout d'abord, insérez quelques données de test :

rrreee

Ensuite, nous pouvons utiliser le code suivant pour demander si un étudiant a suivi un cours spécifique :

rrreee
Dans le code ci-dessus, le nom du cours à trouver est attribué à Variable @cours. Ensuite, dans l'instruction SELECT, utilisez la fonction FIND_IN_SET pour déterminer si la variable @course existe dans le champ courses. Si la valeur renvoyée est supérieure à 0, cela signifie que le cours a été trouvé et que l'identifiant et le nom de l'étudiant seront renvoyés.

Après avoir exécuté le code ci-dessus, nous obtiendrons les résultats suivants :

rrreee🎜Comme le montrent les résultats, les étudiants qui ont suivi le cours de mathématiques incluent Xiao Ming et Xiao Hong. 🎜🎜Résumé : 🎜Cet article décrit comment utiliser la fonction FIND_IN_SET de MySQL pour déterminer si une certaine valeur existe dans une liste de chaînes. Grâce à cette fonction, nous pouvons facilement déterminer si un cours est suivi par un étudiant. En maîtrisant l'utilisation de la fonction FIND_IN_SET, vous pouvez exploiter les données de liste de chaînes dans la base de données MySQL de manière plus flexible et efficace. 🎜🎜Veuillez noter que lorsque vous utilisez la fonction FIND_IN_SET, vous devez vous assurer que les types de paramètres transmis sont corrects pour éviter des résultats inattendus. 🎜

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal