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!