0

最後にログに記録された「アクション」からの時間を返すクエリがありますか?

SELECT unix_timestamp(now()) - unix_timestamp(dateTime)
FROM action_table
WHERE action='$action'
ORDER BY dateTime DESC
LIMIT 1

0唯一の問題は、行が見つからない場合に返されることです。

要求されたアクションのテーブルに行がない場合、結果を返さない方法についてのアイデアはありますか?

編集:これは実際に私が望んでいたように機能しており、テーブルにアクションがない場合は結果を返しません。私のphpは、結果をintにキャストするときにそれを台無しにしていた.

4

1 に答える 1

0

さて、私はこのような IF..ELSE ステートメントを使用します

SELECT CASE WHEN <br>
   (SELECT 
      unix_timestamp(now()) - unix_timestamp(dateTime)
    FROM action_table
    WHERE action='aaa'
    ORDER BY dateTime DESC
    LIMIT 1) > 0
THEN 
   (SELECT 
      unix_timestamp(now()) - unix_timestamp(dateTime)
      FROM action_table
      WHERE action='aaa'
      ORDER BY dateTime DESC
      LIMIT 1)
ELSE 
   'no result' 
END;

これはsqlfiddleの実例です。

于 2013-01-25T01:49:22.673 に答える