Maison  >  Article  >  base de données  >  Comment vérifier si des numéros spécifiques existent dans une liste séparée par des virgules dans MySQL ?

Comment vérifier si des numéros spécifiques existent dans une liste séparée par des virgules dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-25 05:36:36640parcourir

How to Check if Specific Numbers Exist in a Comma-Separated List in MySQL?

Récupération de données lorsque des valeurs existent dans une liste séparée par des virgules (MySQL)

Problème :

Vous disposez d'une table MySQL dont l'une des colonnes, appelée NUMBERS, contient des listes séparées par des virgules de chiffres. Vous souhaitez déterminer si des nombres spécifiques sont présents dans la colonne NUMBERS pour des lignes particulières. Par exemple, vous devez vérifier si les chiffres 3 et 15 sont présents dans la colonne NUMBERS pour une ligne avec l'UID de 2.

Solution :

Vous pouvez utilisez l'opérateur IN pour effectuer cette vérification. L'opérateur IN vous permet de spécifier une liste de valeurs et de vérifier si une valeur donnée correspond à l'une des valeurs de la liste. Dans ce cas, vous pouvez utiliser l'opérateur IN pour vérifier si les nombres 3 et 15 sont présents dans la colonne NUMBERS pour une ligne spécifique.

Une façon de procéder consiste à utiliser la requête suivante :

SELECT * FROM table WHERE 3 IN (NUMBERS) AND 15 IN (NUMBERS);

Cette requête renverra toutes les lignes du tableau où les nombres 3 et 15 sont tous deux présents dans la colonne NUMBERS. Dans votre exemple, cette requête renverrait la ligne avec l'UID de 2 car elle contient à la fois 3 et 15 dans la colonne NUMBERS.

Une autre alternative consiste à utiliser la fonction FIND_IN_SET(). La fonction FIND_IN_SET() prend deux arguments : une valeur et une liste séparée par des virgules. Il renvoie la position de la valeur dans la liste si elle est présente, ou 0 si la valeur n'est pas présente. Vous pouvez utiliser cette fonction pour vérifier si un nombre spécifique est présent dans la colonne NUMBERS en utilisant la requête suivante :

SELECT * FROM table WHERE FIND_IN_SET(3, NUMBERS) > 0 AND FIND_IN_SET(15, NUMBERS) > 0;

Cette requête renverra le même résultat que la requête précédente, mais elle utilise le FIND_IN_SET( ) pour déterminer si les nombres 3 et 15 sont présents dans la colonne NUMBERS.

Ces deux méthodes peuvent être utilisées pour vérifier si des nombres spécifiques sont présents dans un liste séparée par des virgules dans une table MySQL. Vous pouvez utiliser la méthode que vous préférez.

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