Mysql
 sql >> Base de données >  >> RDS >> Mysql

Recherche MYSQL dans les cellules avec des valeurs séparées par des virgules

C'est un signe de mauvaise conception de la base de données que vous devriez d'abord examiner Normalisation de la base de données et si vous pouvez modifier la structure, normalisez-la d'abord en utilisant une table de jonction, à partir de maintenant, vous pouvez utiliser FIND_IN_SET() pour trouver votre identifiant d'enregistrement correspondant dans votre colonne d'identifiants séparés par des virgules

SELECT * FROM table 
WHERE  FIND_IN_SET('id1',column) > 0
AND FIND_IN_SET('id2',column) > 0
AND FIND_IN_SET('id3',column) > 0

Changez l'opérateur selon votre souhait, j'ai montré un exemple avec l'opérateur AND, notez que vous devez utiliser FIND_IN_SET autant de fois que le nombre d'identifiants que vous avez dans votre tableau que vous devez comparer avec votre colonne