Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème "or" dans requete sql

Sujet résolu
    20 juillet 2011 à 20:59:44

    Bonjour,

    J'utilise php5.x, Mysql 5.x et des tables innodb. Je devais faire une requête sur deux tables avec jointure et mon where pouvait spécifier entre une et sept valeurs pour un champ (suivant le formulaire rempli). J'utilisais donc "where champ='valeur1' or champ='valeur2' ...".

    Alors le problème que j'ai eu et que j'ai résolu en utilisant "champ in ('valeur1', 'valeur2'..)"
    - quand une seule valeur était spécifiée, le nombre de résultats était bon
    - quand plusieurs valeurs étaient spécifiées, le nombre de résultats était faux et bien supérieur au nombre total d'insertions dans ma base
    - j'ai testé directement la requête dans phpmyadmin et même résultat.
    - par contre en passant mes tables en myisam la requete s'éxecute bien.

    Ma question est donc : y a t-il quelque chose avec innodb qui ne permette pas d'utiliser les "OR" ?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      21 juillet 2011 à 0:40:47

      Je pense que tu as un problème de priorité des opérateurs :

      a=1 AND b=1 OR c=1 équivaut à (a=1 AND b=1) OR c=1
      • Partager sur Facebook
      • Partager sur Twitter
        21 juillet 2011 à 16:24:27

        Maintenant que tu le dis ça me rappelle quelque chose.
        Merci
        • Partager sur Facebook
        • Partager sur Twitter

        problème "or" dans requete sql

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown