我正在尝试编写SQL查询但不确定如何正确地执行我想要实现的目标。现在我有
position: absolute
所以基本上如果作业的状态为NE或状态为RU且队列匹配concat字符串,那么它应该产生结果。
答案 0 :(得分:3)
您应该使用括号将子句组合在一起。
select id
from job
where
(status = 'NE' or status = 'RU')
and (queue = CONCAT('VA-', varVappId)
or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));
答案 1 :(得分:3)
缺少括号。
select id
from job
where (status = 'NE'
or status = 'RU' )
and (queue = CONCAT('VA-', varVappId)
or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));
或
select id
from job
where status in( 'NE','RU' )
and (queue = CONCAT('VA-', varVappId)
or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));
答案 2 :(得分:1)
在你的where条件下OR
条件应该从AND
使用()分离,所以OR条件将首先检查,它将与AND结合
select id
from job
where (status = 'NE' or status = 'RU' ) and
(queue = CONCAT('VA-', varVappId) or
queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));
答案 3 :(得分:0)
组子句需要缺少一些参数。这也是一般格式,如果这也是你需要的东西。
SELECT id
FROM job
WHERE status IN( 'NE','RU' )
AND (queue = CONCAT('VA-', varVappId)
OR queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));