2013-01-13 181 views
1

我有一段糟糕的时间来理解使用IF语句的MySQL文档我希望有人能够为我简化它。我甚至不知道我想要完成的最好是使用MySQL IF语句完成,还是有更好的方法来使用PHP。我正试图创建一个仅用于学习/实验的在线计时卡系统。我有三个按钮“时钟输入”,“更新”和“时钟输出”。 “时钟进入”是非常简单的,我所做的只是将“员工ID”和“时间”与“日期”一起添加到表中。 “更新”功能就是我现在所在的位置。所以我想要做的是:MySQL IF THEN ELSE语句

  1. 将几个PHP变量添加到表中的指定列。
  2. 将当前时间添加到“超时”列。
  3. 将当前时间添加到具有相同“员工ID”的新行中的“时间在”列中。

所以我想要做的声明将是这样的:

IF "timeOut" is NULL 
WHERE "employeeID" AND "currentDate" 
THEN 
UPDATE "timeRecords" SET "jobDescription", "timeOut" 
WHERE "employeeID" AND "currentDate" 
THEN 
INSERT "timeIn", "employeeID", "currentDate" 

有甚至在MySQL中写的方法吗?如果有的话,有人可以给我一个MySQL工作原理的例子,但是这些文档并不足以让我理解它。 也许有更好的方法来完成这我想念?

+0

你会建议做什么然后 – Yamaha32088

+1

请在点击“更新”之前和之后发布表格的预期内容 – Quassnoi

回答

3

你真的不应该在你的SQL中使用if/then语句。 “控制结构体”适用于C,PHP或Java等语言.SQL是关于“集合”的。

在这种特殊情况下,查看mysql的“替换”语句。这也可能是理想您的方案( “如果有新的,然后再插入,否则更新”):

+1

再看一遍 - 他的问题是关于从PHP调用MySQL RDBMS。具体来说,他想做一个所谓的“upsert”。一个很好的答案是MySQL命令“替换”。这里有一些其他的选择:http://database-programmer.blogspot.com/2009/06/approaches-to-upsert.html – paulsm4

+0

我的错误,+1 –