我有一个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
Run Code Online (Sandbox Code Playgroud)
所以,我需要id_curso是155或156或157或158并在同一时间,id_pregunta= 1和respuesta> 0.
我知道这不是写它的方式,但我不知道正确的方法.
Emi*_*röm 29
试试这个:
WHERE
id_curso IN('155', '156', '157', '158') AND
id_pregunta = '1' AND
respuesta >= 0
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢冗长的方式,请使用括号:
WHERE
(id_curso = '155' OR
id_curso = '156' OR
id_curso = '157' OR
id_curso = '158') AND
id_pregunta = '1' AND
respuesta >= 0
Run Code Online (Sandbox Code Playgroud)
如果id_curso是一个整数(由于你使用了引号,它似乎不是你的查询,但无论如何都是这样),你甚至可以使用BETWEEN关键字来选择一系列值:
WHERE
(id_curso BETWEEN 155 AND 158) AND
id_pregunta = '1' AND
respuesta >= 0
Run Code Online (Sandbox Code Playgroud)
您需要对OR语句进行分组,以便它们形成一个条件:
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
Run Code Online (Sandbox Code Playgroud)