à l'aide de “OU” et “ET” mysql php
J'ai une requête MySQL, où je veux obtenir une valeur, disons m
qui peut être 'x', 'y' ou 'z' et de deux autres variables qui doivent être des valeurs exactes. Je ne sais pas comment écrire ce.
Je ne sais pas si vous avez l'idée, mais c'est ce que j'ai:
SELECT * FROM respuestas
WHERE id_curso = '155' OR id_curso = '156' OR id_curso= '157' OR id_curso= '158'
AND id_pregunta='1' AND respuesta>=0
J'ai donc besoin d' id_curso
être 155
ou 156
ou 157
ou 158
et dans le même temps, id_pregunta
= 1
et respuesta
> 0
.
Je sais que ce n'est pas la façon de l'écrire, mais je ne sais pas de la bonne façon.
Jeter des parenthèses autour de la OU des conditions.
OriginalL'auteur Dan Stern | 2011-04-15
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Ou, si vous préférez votre verbeux, utiliser une parenthèse:
Si id_curso est un entier (ce qui ne semble pas être par votre requête, puisque vous avez utilisé des guillemets, mais va ici de toute façon), vous pouvez même utiliser le mot-clé pour sélectionner une plage de valeurs:
IN
, je pense que c'est une meilleure façon de l'écrire.OriginalL'auteur Emil Vikström
Vous avez besoin de regrouper vos
OR
états, de sorte qu'ils forment une seule condition:D'accord avec Dan au-dessus... je me sens bête, mais c'est EXACTEMENT ce que je cherchais. Merci aussi.
OriginalL'auteur jeroen
ET a une plus grande priorité que OU, vous avez besoin d'utiliser des crochets:
OriginalL'auteur Jan Zyka
vous devez utiliser l'Opérateur
OriginalL'auteur Dongsheng Cai
Essayer de regrouper
SELECT * FROM respuestas WHERE (id_curso= '155' OR id_curso= '156' OR id_curso= '157' OR id_curso= '158') AND id_pregunta='1' AND respuesta>=0
OriginalL'auteur blasteralfred Ψ
Vous pouvez essayer quelque chose comme ça...
si vous ne souhaitez pas l'utiliser, vous pouvez aussi le faire...
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in
OriginalL'auteur Benjamin A