我在设置稍高级的SQL查询时遇到了困难。
我尝试做的是为每个function photomag_image_size() {
$image_sizes = get_intermediate_image_sizes();
return array_merge($image_sizes, array('full',));
}
选择最后24个条目,但我不断获得SQL超时(到目前为止,该表有大约40000个条目)。
所以,让我们说full
1的200个条目和zr_miner_id
2的200个条目,我最终会得到48个结果。
到目前为止,我已经提出了以下查询。
这应该是选择zr_miner_id
中每个结果少于24个具有相同zr_miner_id
的较新条目的结果。
我无法想出任何更好的方法来执行这项任务,但话又说回来,我还没有那么先进的SQL。
zec_results
答案 0 :(得分:0)
使用变量!
SELECT r.*
FROM (SELECT r.*,
(@rn := if(@m = r.zr_miner_id, @rn + 1,
if(@m := r.zr_miner_id, 1, 1)
)
) as rn
FROM zec_results r CROSS JOIN
(SELECT @m := -1, @rn := 0) params
ORDER BY r.zr_miner_id, r.zr_id DESC
) r
WHERE rn <= 24 ;
如果要将查询放入视图中,则上述操作无效。使用(zr_miner_id, zr_id)
上的索引可以提高您的方法的效果。