使用;或;及;及;mysql-php

使用;或;及;及;mysql-php,php,mysql,Php,Mysql,我有一个MySQL查询,在这里我想得到一个值,比如说m,它可以是'x','y'或'z',另外两个变量需要是精确的值。我不知道怎么写这个 我不知道你是否明白,但这就是我的想法: 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 所以我需要id\u cur

我有一个MySQL查询,在这里我想得到一个值,比如说
m
,它可以是'x','y'或'z',另外两个变量需要是精确的值。我不知道怎么写这个

我不知道你是否明白,但这就是我的想法:

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
所以我需要
id\u curso
成为
155
156
157
158
,同时,
id\u pregunta
=
1
respuesta
0


我知道这不是编写它的方法,但我不知道正确的方法。

您需要将
语句分组,以便它们形成一个条件:

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
试试这个:

WHERE
  id_curso IN('155', '156', '157', '158') AND
  id_pregunta = '1' AND
  respuesta >= 0
或者,如果您喜欢冗长的方式,请使用括号:

WHERE
  (id_curso = '155' OR
   id_curso = '156' OR
   id_curso = '157' OR
   id_curso = '158') AND
  id_pregunta = '1' AND
  respuesta >= 0
如果id_curso是一个整数(由于您使用了引号,所以您的查询似乎不是整数,但这里仍然有),您甚至可以使用BETWEEN关键字来选择一系列值:

WHERE
  (id_curso BETWEEN 155 AND 158) AND
  id_pregunta = '1' AND
  respuesta >= 0

你应该在操作符中使用

SELECT * FROM respuestas WHERE id_curso IN (155, 156, 157, 158) AND id_pregunta='1' AND respuesta>=0

并且优先级高于或,您需要使用括号:

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 
尝试分组


从respuesta中选择*,其中(id_curso='155'或id_curso='156'或id_curso='157'或id_curso='158'),id_pregunta='1'和respuesta>=0
您可以尝试类似的方法

SELECT * FROM respuestas WHERE id_curso IN ('155','156','157','158') AND id_pregunta = '1' AND respuesta >= 0
如果你不想用在你也可以这样做

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

在OR条件周围加一些括号。同意上面的Dan。。。我觉得自己很笨,但这正是我想要的。谢谢。