开发者

How to dynamically add SELECT statements if not enough results?

I am querying a table for a set of data that may or may not have enough results for the correct operation of my page.

Typically, I would just broaden the range of my SELECT statement to insure enough results, but in this particular case, we need to start with as small of a range of results as possible before expanding (if we need to).

My goal, therefore, is to create a query that开发者_如何学Python will search the db, determine if it got a sufficient amount of rows, and continue searching if it didn't. In PHP something like this would be very simple, but I can't figure out how to dynamically add select statements in a query based off of a current count of rows.

Here is a crude illustration of what I'd like to do - in a SINGLE query:

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
}

Is this possible to do with a single query?


You have 2 possible solutions:

  1. Compare the count on the programming language side. And if there is not enough - perform one more query. (it is not as bad as you think: query cache, memcached, proper indexes, enough memory on server, etc - there are a lot of possibilities to improve performance)
  2. Create stored procedure
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜