Requête séléctive en profondeur ...

Eléphant du PHP | 353 Messages

27 avr. 2006, 20:33

Bonjour , je voudrais savoir s'il y a possiblité de voir directement avec une requete sql si dans un champ ou j'ai des valeurs séparée par une , une certaine valeur s'y trouve !
EX:

TABLE option
id (1)
all(1,4,5,6)

Je voudrais pouvoir directement séléctionner les valeur "id" de l'option pour laquel il y a la valeur 5 dans le champ "all" !!!

Tout ca pour m'eviter de tout extraire puis de faire un in_array() pour vérifier que la valeur est dedans !!


merci d'avance

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

27 avr. 2006, 20:50

C'est possible, mais ce n'est pas la bonne solution.

C'est une question qui revient très fréquemment sur les forums, je te conseille de chercher "normalisation", "normalisation des données", "forme normale" sur les forums et sur Google.

Au lieu de stocker "all = '1,4,5,6'", il te faut créer un enregistrement pour chaque valeur, donc dans l'exemple tu aurais 4 enregistrements: (1,1), (1,4), (1,5) et (1,6). À partir de là, rien de plus facile qu'exécuter

Code : Tout sélectionner

SELECT id FROM table WHERE valeur = 5

Eléphant du PHP | 353 Messages

04 mai 2006, 08:13

oui c'est juste !!! :wink: