适当时不返回任何结果

时间:2013-01-25 00:08:25

标签: sql mysqli

我有一个查询返回自上次记录的“操作”以来的时间?

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

唯一的问题是,如果没有找到行,则返回0

如果所请求的操作表中没有行,我是如何才能获得此结果的任何想法?

编辑:这实际上是我想要的工作方式,如果表格中没有任何操作,则不返回任何结果。我的php只是在将结果转换为int时搞砸了。

1 个答案:

答案 0 :(得分: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上的一个工作示例。