Maison  >  Article  >  base de données  >  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
WBOYoriginal
2023-07-24 20:17:07967parcourir

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)
);

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

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

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

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

SET @course = '数学';
SELECT id, name
FROM students
WHERE FIND_IN_SET(@course, courses) > 0;

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

+----+--------+
| id | name   |
+----+--------+
| 1  | 小明   |
| 2  | 小红   |
+----+--------+

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!

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