sql – 在时间上分配表

前端之家收集整理的这篇文章主要介绍了sql – 在时间上分配表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 MySQL表,每个用户大约有3000行.其中一列是datetime字段,它是可变的,因此这些行不按时间顺序排列.

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

我可以这样做:

select timefield from entries where uid = ? order by timefield;

并看第150行.

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

但是一定要有更有效的解决方

解决方法

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;

猜你在找的MsSQL相关文章