我可以有条件地运行连续的MySQL子查询吗?

时间:2010-11-26 08:49:46

标签: mysql select conditional subquery

我目前有PHP代码运行带有子查询的单个复杂查询,希望找到12个匹配的记录。如果返回的记录少于12个,则代码将运行同一查询的第二个版本,并稍加修改WHERE子句,以添加到先前由第一个查询检索的记录中。它继续运行查询的修改版本,直到汇总了总共12条记录。

我知道我可以将多个查询(目前有五个)与UNION结合使用,但即使联合中的第一个查询成功返回12条记录,所有查询也会运行。由于每个查询都很复杂,我不想浪费资源。 (或者,我错了吗?一旦达到LIMIT,MySQL是否知道停止执行子查询?)

在MySQL中有没有办法完成我目前在PHP中所做的事情?例如,如何使用五个子查询进行查询,并且只有在前面的子查询没有产生所需的计数时才能通过连续的子查询进行查询?

1 个答案:

答案 0 :(得分:1)

您可以在服务器上创建一个stored procedure来完成此检查。