6

過去1時間以内にタイムスタンプ値を持つ行を表示するにはどうすればよいですか?

これが私が今持っているものです、そしてそれは最新の行を示しています、そして制限のために3行だけです。

$query5= mysql_query("SELECT * FROM  `made_orders` ORDER by id DESC LIMIT 0,3");



    WHILE($datarows5 = mysql_fetch_array($query5)):

    $name4 = $datarows5['Name'];
    $phone4 = $datarows5['Phone'];
    $entree4 = $datarows5['Entree'];
    $side14 = $datarows5['Side 1'];
    $side24 = $datarows5['Side 2'];
    $drink4 = $datarows5['Drink'];
    $totalcost4 = $datarows5['Total Cost'];
    $ip4 = $datarows5['Ip'];
    $id4 = $datarows5['id'];
    $time4 = $datarows5['timestamp'];

    echo "<iframe src=\"creatmeal-data.php?id={$id4}\" width=\"430px\" style=\"border:0px\" height=\"350px\"/></iframe>";

endwhile; ?>

上記のコードでは、行が見つかるたびにiframeをエコーし​​ます。タイムスタンプ列を使用して1時間以内の最新のもののみを表示するようにクエリを編集するにはどうすればよいですか?

よろしくお願いします!

編集:これが私のタイムスタンプ列がどのように見えるかです:http://img856.imageshack.us/img856/4135/columnk.png

4

2 に答える 2

19

現在のクエリは、過去1時間に作成されたかどうかに関係なく、最新の3つの注文を取得します。

このソリューションを使用します。

SELECT *
FROM made_orders
WHERE timestamp >= NOW() - INTERVAL 1 HOUR
ORDER BY timestamp DESC
LIMIT 3

これは、過去1時間以内に最大3つの注文を受け取ります。過去1時間以内に注文が1つしかない場合は、1つの行のみが選択されます。

于 2012-07-08T21:51:18.383 に答える
1

SELECT * FROM made_ordersORDER by ID WHERE UNIX_TIMESTAMP( yourTimestampColumn) > UNIX_TIMESTAMP() - 60*60

于 2012-07-08T21:40:00.140 に答える