我的软件是一个存储用于运行和报告测试用例的Web应用程序,它显示测试用例列表(每个项目)。该列表还包括一些基本信息,例如测试目标,项目/产品版本,测试用例的当前版本号以及测试是否有任何评论。
但是,我正在使用的MYSQL查询非常长,因为我正在使用状态为0
,1
或{{1}的三态复选框在查询级别过滤结果}。我的逻辑没有问题,并且可以正常工作,但是我表中的列2
不存在,它是通过以下子查询获得的:
open_review_comments
返回(
SELECT
COUNT(*)
FROM
review_comments
WHERE
closed='0'
AND
step_id
IN
(
SELECT
id
FROM
test_steps
WHERE
test_case_id=tc.id
)
) > 0
) AS 'open_review_comments'
或0
。
但是我的问题是这样:
根据三态复选框,在查询级别过滤结果的地方,1
子句已经很长了,因为我每次必须写WHERE
。 / p>
我正在使用PDO准备的查询,值open_review_comments
将是值:include_review_comments
,0
或1
这是我要优化的2
子句的一部分,因此不必每次都编写子查询。
WHERE
是否可以进行查询,所以我不必在where子句中重复编写它?返回结果后,我应该在PHP代码中进行过滤吗?我认为我无法在MySQL的where子句中使用列别名。