2013-01-13 233 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 –