有没有更有效的方式编写此查询?

时间:2019-05-09 08:17:47

标签: mysql

我的软件是一个存储用于运行和报告测试用例的Web应用程序,它显示测试用例列表(每个项目)。该列表还包括一些基本信息,例如测试目标,项目/产品版本,测试用例的当前版本号以及测试是否有任何评论。

但是,我正在使用的MYSQL查询非常长,因为我正在使用状态为01或{{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_comments01

这是我要优化的2子句的一部分,因此不必每次都编写子查询。

WHERE

是否可以进行查询,所以我不必在where子句中重复编写它?返回结果后,我应该在PHP代码中进行过滤吗?我认为我无法在MySQL的where子句中使用列别名。

0 个答案:

没有答案