如果结果不够,如何动态添加SELECT语句?

时间:2011-02-09 01:11:41

标签: mysql optimization

我正在查询表格中的一组数据,这些数据可能会或者可能没有足够的结果来正确操作我的页面。

通常,我只是扩大SELECT语句的范围以确保足够的结果,但在这种特殊情况下,我们需要在扩展之前尽可能小的一系列结果(如果需要)。< / p>

因此,我的目标是创建一个查询来搜索数据库,确定它是否有足够的行,并继续搜索是否存在。在PHP中,这样的事情会非常简单,但我无法弄清楚如何根据当前的行数在查询中动态添加select语句。

以下是我想要做的粗略说明 - 在单个查询中:

SELECT *, COUNT(`id`) FROM `blogs` WHERE `date` IS BETWEEN '2011-01-01' AND '2011-01-02' LIMIT 25

IF COUNT(`id`) < 25 {
    SELECT * FROM `blogs` WHERE `date` IS BETWEEN '2011-01-02' AND '2011-01-03' LIMIT 25
}

这可以用单个查询吗?

1 个答案:

答案 0 :(得分:1)

您有两种可能的解决方案:

  1. 比较编程语言方面的计数。如果还不够 - 再执行一次查询。 (它没有你想象的那么糟糕:查询缓存,memcached,正确的索引,服务器上的足够内存等等 - 提高性能有很多可能性)
  2. 创建存储过程