PHP MySQL - 按时差限制查询结果

时间:2012-03-23 08:41:30

标签: php mysql time limit

这是数据库表的一个例子:

enter image description here

PHP脚本应限制在30秒之前的NOW和时间之间的查询结果

要明确:

在当前时间是2012-03-23 03:28:00,数据库在示例中描述,resoult应该是:“guest”

这是PHP脚本的一部分。

<?php
    $con = mysql_connect("localhost", "user", "pass");
    if (!$con) {
        die('Could not connect: '.mysql_error());
    }

    mysql_select_db("db", $con);

    $result = mysql_query('SELECT * FROM table LIMIT BY ...???...... ');
        while ($row = mysql_fetch_array($result)){
         echo $row['username'];
        }

    mysql_close($con);
?>

3 个答案:

答案 0 :(得分:4)

您不想要LIMIT,而需要WHERE

$result = mysql_query(
'SELECT * FROM table WHERE `timestamp` > NOW()- INTERVAL 30 SECOND '
);

在SQL中,LIMIT子句执行整个查询,然后只占用连续行的某个“范围”。你可以说“前50”,或“从20到30”。

WHERE子句限制查询某些条件,例如字段内容。这就是你想要的。

答案 1 :(得分:2)

... WHERE (unix_timestamp(NOW()) - unix_timestamp(timestamp))<30 ..

OR

WHERE TIME_TO_SEC(TIMEDIFF(NOW(), timestamp))<30

答案 2 :(得分:1)

    $result = mysql_query('SELECT * FROM table where date_sub(now(), timestamp ) < your_time_interval ');