Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2834 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Requête WHERE : ça coince

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Requête WHERE : ça coince

n°1193632
superjarod​d
Posté le 06-09-2005 à 21:55:26  profilanswer
 

Bonjour,
 
J'aimerais savoir s'il existe une façon de sélectionner plusieurs champs par une requête WHERE sans mentionner plusieurs fois le champ. Bon je ne sais pas comment être plus clair donc un exemple :
 
Ce que je voudrais :

Citation :

SELECT * FROM table WHERE champ1 LIKE machin OR truc OR bidule


 
Ce que je ne veux pas :

Citation :

SELECT * FROM table WHERE champ1 LIKE machin OR champ1 LIKE truc OR champ1 LIKE bidule


 
Voilà je ne ne veux pas répéter champ1 à chaque fois, j'aimerais le mettre une fois au début et ensuite ne mettre que les valeurs. J'ai essayé ceci :

Citation :

SELECT * FROM table WHERE champ1 IN (choix1, choix2, choix3, choix4);


 
mais j'ai une erreur qui me dit que choix1 n'existe pas (j'ai pourtant fait un copier coller)
 
J'espère que j'ai été assez clair  :sarcastic:  
 
Merci pour votre aide.
 
Jarodd


Message édité par superjarodd le 07-09-2005 à 12:59:04
mood
Publicité
Posté le 06-09-2005 à 21:55:26  profilanswer
 

n°1193646
betsamee
Asterisk Zeperyl
Posté le 06-09-2005 à 22:02:23  profilanswer
 

c'est pas du php mais du sql
sinon la syntaxe sql est la bonne pour faire ce que tu veux
 
EDIT: oublies pas les quotes si c'est des chaines de caractere
 

Code :
  1. select * from tatable where champ1 in ('possibilite1','possibilite2')


Message édité par betsamee le 06-09-2005 à 22:06:42
n°1193664
superjarod​d
Posté le 06-09-2005 à 22:09:40  profilanswer
 

Justement j'avais essayé avec les quotes, mais j'ai cette erreur :  
 

Citation :

#1270 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8_general_ci,COERCIBLE), (utf8_general_ci,COERCIBLE) for operation ' IN '


 
J'en ai déduit que ce n'était pas la bonne syntaxe :??:

n°1193669
betsamee
Asterisk Zeperyl
Posté le 06-09-2005 à 22:13:35  profilanswer
 
n°1193923
omega2
Posté le 07-09-2005 à 11:45:28  profilanswer
 

Traduction du message d'erreur : tentative de comparer une chaine à un ensemble de chaines ayant des codages différents. ("latin1_swedish_ci" et "utf8_general_ci" )

n°1193994
superjarod​d
Posté le 07-09-2005 à 12:58:00  profilanswer
 

Bon je ne comprend pas pourquoi ni comment, mais j'ai réussi avec le IN :  
 

Citation :

$champs = "champs IN ('champ1', 'champ2', 'champ3')";
 
$requete = "SELECT * FROM table WHERE ($champs)";


 
Il me semble que c'est exactement ce que j'avais écrit hier, mais maintenant je n'ai plus l'erreur... Pourtant je suis persuadé de ne rien avoir changé !
 
Merci pour votre aide  :jap:
 
Edit : pour ceux qui rencontreraient l'erreur n° 1270, vérifiez l'interclassement sur la page d'accueil de MySql : le mien s'était changé en UFT-8, sûrement par une fausse manip, je l'ai remis en latin1_swrdish_ci et ça fonctionne.


Message édité par superjarodd le 07-09-2005 à 14:48:11

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Requête WHERE : ça coince

 

Sujets relatifs
Problème de block/inline [résolu][RESOLU] macro,plus de macro...comprend pas tout... (excel)
[RESOLU]Boucle dans remplacement regex[RESOLU] Excel : macro qui marche, mais boutton qui marche pas !
[Win32] new / delete & DLL [résolu]sens de [...] ? [résolu]
[Résolu] Pb affichage lors de la mise en ligne[RESOLU] Date: mois-année, bien la galere... (excel)
Socket: Mesure d'upload et dowload [RESOLU]Requete commune a 2 db sql
Plus de sujets relatifs à : [Résolu] Requête WHERE : ça coince


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR