如果查询的结果不符合计数阈值,您可以计算查询的结果并使其成为动态查询的一部分吗?也许使用一个案例?正如你在下面看到的,我有一个很大的愚蠢的SQL查询有很多事情(忽略日期调整部分,对不起)。有时它会从超过10k个物品的数据库中返回少于12个结果,因为它需要在关闭17小时内的物品。如果sql查询计数小于
所以问题是,我可以检查(计数?)整个查询结果本身,并打开17小时参数到一个更大的数字返回至少12个结果?
在此先感谢。
SELECT 100 - round((current_price/item.estimated_price)*100) as percent, item.cached_thumbnail_url, item.item_id, current_price, close_date, catalog_item_id FROM catalog_item AS ci JOIN item on item.item_id = ci.item_id
JOIN item_translations it ON (it.item_id = item.item_id) WHERE ((100 - round((current_price/item.estimated_price)*100)) > 49 AND
item.estimated_price > 0 AND
current_price > 0 AND
ci.close_date > DATE_ADD(NOW(), interval 14400 second) AND
item.active = 1 AND
ci.active = 1 AND
(current_price/estimated_price) < 1 AND
(ci.close_date < DATE_ADD(DATE_ADD(NOW(), interval 14400 second), INTERVAL 17 HOUR))) ORDER BY (item.estimated_price - current_price) DESC LIMIT 12
检查mysql case函数以替换该间隔。你也可以使用存储过程。 – Samson 2012-07-31 06:26:23