我有一个查询返回自上次记录的“操作”以来的时间?
SELECT unix_timestamp(now()) - unix_timestamp(dateTime)
FROM action_table
WHERE action='$action'
ORDER BY dateTime DESC
LIMIT 1
唯一的问题是,如果没有找到行,则返回0
。
如果所请求的操作表中没有行,我是如何才能获得此结果的任何想法?
编辑:这实际上是我想要的工作方式,如果表格中没有任何操作,则不返回任何结果。我的php只是在将结果转换为int时搞砸了。
答案 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上的一个工作示例。