[PHP/MYSQL] Problème de requête avec "LIKE"
Résolu
flagoustou
-
maka54 Messages postés 698 Date d'inscription Statut Membre Dernière intervention -
maka54 Messages postés 698 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis avec une requête SQL,
J'ai un champ qui comporte comme valeur (3;1;)
Pour trier tout ça, je lance comme requête :
Mais malheureusement (et c'est le comportement normal du LIKE) il me retourne des valeurs comme "13;" "23;".
Comment puis faire pour que j'ai un retour seulement avec les "3;" ?
(Le soucis étant que mes valeurs de champs ne sont jamais unique =>"3;1;" =>"1;13;14;"...)
J'ai un petit soucis avec une requête SQL,
J'ai un champ qui comporte comme valeur (3;1;)
Pour trier tout ça, je lance comme requête :
SELECT * FROM 'offre' WHERE idcategorie LIKE '3;'
Mais malheureusement (et c'est le comportement normal du LIKE) il me retourne des valeurs comme "13;" "23;".
Comment puis faire pour que j'ai un retour seulement avec les "3;" ?
(Le soucis étant que mes valeurs de champs ne sont jamais unique =>"3;1;" =>"1;13;14;"...)
A voir également:
- Mysql php like
- Easy php - Télécharger - Divers Web & Internet
- Voir like instagram - Guide
- Coco like - Accueil - Réseaux sociaux
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
7 réponses
donc tu veux que tes valeurs ne s'affichent que "3;" ? si c'est le cas, pourquoi ne pas mettre une égalité?
Salut!
essai ça:
Pas trop bien compris,donc dis moi si c'est ce que tu veux!
essai ça:
SELECT * FROM 'offre' WHERE idcategorie LIKE '3;%'
Pas trop bien compris,donc dis moi si c'est ce que tu veux!
Merci pour ta réponse rapide !
En faite je veux récupérer les champs qui ont uniquement une valeur de "3;" (par exemple).
Malheureusement avec LIKE '3;%' ou LIKE '%3;%' ou LIKE %3;' ça ne fonctionne pas, car le résultat de SQL me donne comme réponse : "13;" "23;" "3;".
Et j'aimerai récupéré les champs qui ont comme valeur "3;".
(les "LIKE '3;%" ne fonctionnent pas car j'ai certaines valeurs comme "11;3;").
En faite je veux récupérer les champs qui ont uniquement une valeur de "3;" (par exemple).
Malheureusement avec LIKE '3;%' ou LIKE '%3;%' ou LIKE %3;' ça ne fonctionne pas, car le résultat de SQL me donne comme réponse : "13;" "23;" "3;".
Et j'aimerai récupéré les champs qui ont comme valeur "3;".
(les "LIKE '3;%" ne fonctionnent pas car j'ai certaines valeurs comme "11;3;").
l'égalité ne fonctionne pas car mes champs ne sont jamais égales à "3;" uniquement, il y a d'autre valeur avec comme "11;3;" au sein du même champs par exemple.
D'où l'utilisation du "LIKE "et non de "=".
D'où l'utilisation du "LIKE "et non de "=".
Pour le coup, je ne sais pas si c'est possible, car il faudrait s'assurer que le caractère avant le 3 soit vide, ou égal à ";"
Une solution "bidouille" serait de rajouter un ";" devant chaque ligne, et du coup, de rechercher sur la valeur ";3;" ensuite.
Une solution "bidouille" serait de rajouter un ";" devant chaque ligne, et du coup, de rechercher sur la valeur ";3;" ensuite.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Excellent ! je n'y avais pas pensé!
Merci pour ta réponse.
Je vais faire mes modifications en début d'après midi et je te tiens au courant !
Merci pour ta réponse.
Je vais faire mes modifications en début d'après midi et je te tiens au courant !
Il y a un problème de conception
une offre pouvant avoir plusieurs catégorie (à moins que je me trompe)
tu devrais avoir une table supplémentaire qui fasse le lien entre offre et catégorie
offre
------
id_offre
contenu_offre
categorie
----------
id_categorie
libelle_categorie
offre_categorie
--------------
id_offre
id_categorie
une offre pouvant avoir plusieurs catégorie (à moins que je me trompe)
tu devrais avoir une table supplémentaire qui fasse le lien entre offre et catégorie
offre
------
id_offre
contenu_offre
categorie
----------
id_categorie
libelle_categorie
offre_categorie
--------------
id_offre
id_categorie