开发者社区> 问答> 正文

表格的及时分配

我有一个MySQL表,每个用户约有3000行。列之一是日期时间字段,该字段是可变的,因此行不是按时间顺序排列的。

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

我可以这样做:

select timefield from entries where uid = ? order by timefield; 并查看第150行。

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

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

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-15 15:15:40 342 0
1 条回答
写回答
取消 提交回答
  • 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;

    2019-11-15 15:15:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载