插入另一行的值和句柄行不存在。 Mysql插入

时间:2016-10-03 16:27:07

标签: mysql database insert

我有一个问题/答案系统,我正在尝试记录回复问题的响应时间。

我正在使用的INSERT代码的简单摘要:

 INSERT INTO questions (responsetime, {otherfields})
 (SELECT Now-msgDateTime, {otherfields} FROM questions WHERE headerid='This_Header_id' ORDER    BY id DESC LIMIT 1)

这对于线程中的所有辅助消息都可以正常工作,但对于线程中的第一条消息,它将具有新的唯一HeaderId,因此查询

(SELECT * FROM questions WHERE headerid='This_Header_id')

不会返回任何值。在这种情况下,我的第一次SQL更新不会INSERT新行。

那么如何编写一个后备来插入' 0'进入responsetime字段,headerid选择的行是NULL

1 个答案:

答案 0 :(得分:0)

您应该能够使用像MAX这样的函数组,它将返回null或匹配值。如果有更好的方法,可以看到其他答案,但怀疑这对你有用。

INSERT INTO questions (responsetime, {otherfields})
 (SELECT IF(ISNULL(MAX(headerid)), 0, Now-msgDateTime)
   , {otherfields} 
  FROM questions WHERE headerid='This_Header_id' 
  ORDER BY id DESC 
  LIMIT 1
)