![](/img/trans.png)
[英]How can I write this SQL query properly in Rails without declaring the association?
[英]How can I properly write SQL query
我正在尝试编写SQL查询,但不确定如何正确地完成我想实现的目标。 现在我有
select id
from job
where status = 'NE'
or status = 'RU'
and queue = CONCAT('VA-', varVappId)
or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId);
因此,基本上,如果作业的状态为NE或RU且队列与concat字符串匹配,则它将产生结果。
您应该使用括号将子句组合在一起。
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 = '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));
在您的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));
缺少一些参数,需要对子句进行分组。 这也是一般格式,如果您也需要这种格式。
SELECT id
FROM job
WHERE status IN( 'NE','RU' )
AND (queue = CONCAT('VA-', varVappId)
OR queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.