这是我目前正在运行的查询:
$result = R::getAll("SELECT * FROM vw_participantes_curso JOIN vw_cursos ON vw_participantes_curso.id = vw_cursos.id_curso where LEFT(vw_cursos.sigla, 3) = 'ICV' AND RIGHT(vw_cursos.sigla, 3) = '312' AND username = :u",
array(':u' => $username)
);
用简单的英语查询:
找到一名学生,该课程以“ICV”开头并以“312”结尾。
现在我需要在同一个查询中添加一个或语句,使其显示为:
找到一名学生,该课程以“ICV”和开头,以“312”和结尾(角色5 或 roleid 15)。
如何在MySQL中格式化这样的嵌套条件?
答案 0 :(得分:1)
您可以使用in
运算符:
SELECT *
FROM vw_participantes_curso
JOIN vw_cursos
ON vw_participantes_curso.id = vw_cursos.id_curso
where LEFT(vw_cursos.sigla, 3) = 'ICV'
AND RIGHT(vw_cursos.sigla, 3) = '312'
AND username = :u
AND roleid in (5,15)
或者如果你真的想要or
运营商:
SELECT *
FROM vw_participantes_curso
JOIN vw_cursos
ON vw_participantes_curso.id = vw_cursos.id_curso
where LEFT(vw_cursos.sigla, 3) = 'ICV'
AND RIGHT(vw_cursos.sigla, 3) = '312'
AND username = :u
AND (roleid = 5 or roleid = 15)
答案 1 :(得分:0)
最简单的将是
SELECT *
FROM tableName
WHERE columnName LIKE 'ICV%312' AND
roleID IN (5,15)