【问题标题】:MySQL Queries before NOW现在之前的 MySQL 查询
【发布时间】:2012-05-11 13:03:39
【问题描述】:

现在我在这个奇妙的网站上阅读了有关如何检查数据库中的时间戳是否在 now() 之前的内容,这回答了我的部分问题。

但是我的问题的其余部分仍然让我感到困惑:

您如何不仅可以检查 BEFORE now() 时间戳,而且还可以限制现在查询的时间戳数?

我有一个充当留言簿的数据库,输出是一个看起来像便利贴板的闪存。您填写一张表格,提交的内容会立即“粘贴”到便利贴板上。问题是当你第一次加载页面时,它会加载从 id-0 到 id-5,000,000 的每一个帖子,以此类推。

我想限制加载的数量,以便查询查看以下内容:

当前时间戳是多少?
回到过去(例如)10 个条目之前
从那个时间点开始发帖

我的数据库中的字段是:id、cmets、timestamp

编辑
我正在看一些答案,我想问一下LIMIT。如果我对查询设置了限制,我现在还能查询过去的帖子吗?

示例:假设有两个人同时查看该网站。一位访问者在数据库中发表评论。我希望第 2 个人仍然能够看到他最后弹出的评论。

Flash 便利贴区域运行一个 php 脚本,该脚本查询数据库并将其导出为 Flash 可以读取的 XML 格式。每隔 5 秒,flash 会重新查询数据库以检查更多帖子。

如果我在查询中设置了限制,我仍然能够即时获取新条目吗?我只希望 LIMIT 生成一个从零点偏移的起点

【问题讨论】:

  • 几乎相同 stackoverflow.com/q/9256024/1366533 - 使用 LIMIT 限制结果行数。
  • 将 LIMIT cap 允许在 now() 之后发布帖子,或者将帖子 10 之前限制 now() 到 now()....如果没有清楚地传达,我编辑了我的原始帖子跨度>

标签: php mysql forms timestamp


【解决方案1】:

我认为您要查找的内容称为Limit 您只需将其放在语句的末尾,查询将返回您想要的结果数量

YOUR QUERY LIMIT 0,10

这将返回 10 个第一个结果

【讨论】:

    【解决方案2】:
    SELECT * FROM
        (SELECT ... WHERE dt<NOW() ORDER BY dt DESC LIMIT 10) a
    ORDER BY a.dt ASC
    

    SELECT ... WHERE dt<NOW() ORDER BY dt DESC LIMIT 10 
    

    看看哪个更适合你。

    【讨论】:

      猜你喜欢
      • 2015-05-30
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 2015-01-23
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多