【问题标题】:PHP/MYSQL - Limit to last 500 then continuePHP/MYSQL - 限制为最后 500 然后继续
【发布时间】:2013-11-20 07:25:33
【问题描述】:

我有一个脚本将推文添加到数据库中,另一个脚本通过 php/ajax 获取这些推文并显示。这一切都适用于空数据库,但如果我已经有很多推文,它会运行 intp 问题。我现在要做的是设置 msql 查询以获取第一个说 500 行,然后继续添加推文并忽略以前的 500 条推文等。所以从最新的行开始,然后将最新的行增加到 500max下次查询时分别获取 ro 1001、1002、1003。

关于如何做到这一点的任何想法?一旦获得最新的 500 行,我可以设置一个变量来更改查询??

谢谢

编辑:

$ts = mysql_real_escape_string($_GET['lasttweet']);
$result = mysql_query("SELECT tweet_id, tweet_text, screen_name FROM tweets WHERE tweet_id > $ts LIMIT 100") or die (mysql_error());

这是我尝试过的查询,但每次它只获得另外 100 个旧帖子,从那时起我需要它来获得新帖子。

【问题讨论】:

  • 到目前为止你尝试了什么??
  • 添加一列指示添加记录的时间,跟踪显示的最后一条记录的相关值,然后过滤自:WHERE time_added > ? ORDER BY time_added LIMIT 500之后添加的记录。
  • 但我需要最新行之前的 500。我曾尝试使用 LIMIT 进行类似的操作,但无法使其正常工作。我是 php 新手,不知道要尝试什么对不起。非常感谢。

标签: php mysql ajax database


【解决方案1】:

如果您不想更新记录,请使用完整版的 LIMIT 子句。

SELECT ... FROM tweets WHERE ... LIMIT 1 500
SELECT ... FROM tweets WHERE ... LIMIT 501 500
SELECT ... FROM tweets WHERE ... LIMIT 1001 500

当然,这意味着您需要跟踪上次检索到的块。

【讨论】:

    【解决方案2】:

    您必须保留一个不同的字段,例如“tweeted”,默认值为 0,一旦您获取 500 条记录,将这些记录的 tweeted 字段更新为 1,并将您的 select 语句修改为

    "SELECT tweet_id, tweet_text, screen_name FROM tweets WHERE tweeted != 1 LIMIT 500"
    

    【讨论】:

      【解决方案3】:
      $ts = mysql_real_escape_string($_GET['lasttweet']);
      mysql_query('SET CHARACTER SET utf8');
      //Query to get number of rows
      $numRows = mysql_query("SELECT tweet_id FROM tweets ") or die (mysql_error());
      $rows = mysql_num_rows($numRows);
      
      //Only show last/latest 500 tweets
      $tweetLimit = 500;
      if($_GET['lasttweet'] == 0){
        if($rows > $tweetLimit){
          $startFrom = $rows - $tweetLimit;
        }
      }else{
        $startFrom = 0;
      }
      
      $result = mysql_query("SELECT tweet_id, tweet_text, screen_name, profile_image_url 
        FROM tweets 
        WHERE tweet_id > $ts 
        ORDER BY tweet_id
        LIMIT $startFrom, $tweetLimit
        ") 
        or die (mysql_error());
      

      【讨论】:

        猜你喜欢
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        • 2018-02-20
        • 2017-12-14
        相关资源
        最近更新 更多