表及时分配

Mic*_*are 12 mysql sql

我有一个MySQL表,每个用户大约有3000行.其中一列是datetime字段,它是可变的,因此行不按时间顺序排列.

我想在图表中可视化时间分布,因此我需要一些单独的数据点.20个数据点就足够了.

我能做到这一点:

select timefield from entries where uid = ? order by timefield;
Run Code Online (Sandbox Code Playgroud)

每隔150行看一下.

或者我可以做20个单独的查询并使用limit 1offset.

但必须有一个更有效的解决方案......

Bil*_*win 6

Michal Sznajder几乎拥有它,但你不能在SQL的WHERE子句中使用列别名.所以你必须将它包装为派生表.我尝试了这个,它返回20行:

SELECT * FROM (
    SELECT @rownum:=@rownum+1 AS rownum, e.*
    FROM (SELECT @rownum := 0) r, entries e) AS e2
WHERE uid = ? AND rownum % 150 = 0;
Run Code Online (Sandbox Code Playgroud)