我正在查询,需要一些帮助。
这是查询的一部分:
AND count_sub>2 AND count_del<=2
我想要做的是,在这个查询中取 2 个变量,并且 IFcount_sub
大于5+count_del
continue。
例子:
count_sub = 10
count_del = 4
差值为 6,因此将返回结果,但如果:
count_sub = 4
count_del = 1
差是 3 并且不会返回任何东西
谢谢
我正在查询,需要一些帮助。
这是查询的一部分:
AND count_sub>2 AND count_del<=2
我想要做的是,在这个查询中取 2 个变量,并且 IFcount_sub
大于5+count_del
continue。
例子:
count_sub = 10
count_del = 4
差值为 6,因此将返回结果,但如果:
count_sub = 4
count_del = 1
差是 3 并且不会返回任何东西
谢谢
您可以查询差异:
WHERE count_sub - count_del > 5
我会推荐以下解决方案:
SELECT a.id
FROM tbl1 a
INNER JOIN (SELECT id, count_sub - count_del AS diff FROM tbl1) b ON b.id = a.id
WHERE b.diff > 5
WHERE
通过在子句 ( )中使用算术WHERE count_sub - count_del > 5
,您可以防止优化器使用列上的索引。一般规则是将算术尽可能远离那里的WHERE
子句。将算术移动到派生表到派生列更有效。