2011-07-31 126 views
0

我得到一個:Mysql查詢拋出錯誤

你有你的sql語法錯誤;檢查對應的手冊....

這是我的查詢。我做MSSQL,我是新來的MySQL ..請幫助

IF EXISTS (SELECT * FROM TIMESHEET WHERE EMPLOYEEID = '1' AND PERIODENDINGDATE = '2011-01-30') 
    UPDATE TIMESHEET SET STATUSCODE = 'P', PERIODENDINGDATE = '2011-01-30', DEPARTMENTCODE = 'IT' 
         MINUTESMON = '200', MINUTESTUE= '200', MINUTESWED='200', MINUTESTHU='200' 
         MINUTESFRI='200', MINUTESSAT='200', MINUTESSUN='200' 
ELSE 
    INSERT INTO TIMESHEET (EMPLOYEEID, STATUSCODE, PERIODENDINGDATE, DEPARTMENTCODE, MINUTESMON, MINUTESTUE, 
          MINUTESWED, MINUTEDTHU, MINUTESFRI, MINUTESSAT, MINUTESSUN) 
      VALUES ('1','P','2011-01-30','IT','200','200','200','200','200','200','200') 
+0

我想你需要'插入..重複密鑰更新',http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html –

+0

嗯不知道..我不知道任何關於mySql ..但知道一些關於MSSQL – user710502

+0

好吧,我不知道任何關於mySql,但如果我插入一條記錄然後..明天..我回去,並嘗試插入另一個記錄會發生什麼..但我不希望它插入一個新的記錄,因爲昨天我已經進入了它......我只是想更新,如果多數民衆贊成的情況下..現在..我知道的唯一的事情是employeeid和日期..但在該表可以是多個具有相同employeeid但日期不同的記錄? – user710502

回答

1

除非這是一個存儲過程或函數或觸發器的一部分,這根本不是一個MySQL查詢的有效形式。你不能只用MySQL寫一個自由格式的邏輯到一個查詢中。

您可能要編寫一個INSERT INTO...ON DUPLICATE KEY UPDATE查詢。

+0

好吧,我不知道任何有關mySql的事情,但是如果我插入一條記錄然後會發生什麼..明天..我回去嘗試插入另一條記錄..但我不希望它插入一條新記錄,因爲昨天我輸入了它已經...我只是想更新,如果是這種情況..現在..我知道的唯一的事情是employeeid和日期..但在該表中可能有多個記錄具有相同的employeeid但不同的日期? – user710502

+0

Make(employeeid,date)是表的主鍵,然後編寫一個INSERT INTO ... ON DUPLICATE KEY UPDATE查詢。當您嘗試插入與現有行相同(employeeid,日期)對的第二行時,它將更新該行而不是創建新行。如果由於某種原因,你不能創建主鍵(辦公室政治),那麼你將不得不發出一個'SELECT'查詢來查看該行是否存在,然後根據需要發送'INSERT'或'UPDATE'查詢。 –

+0

是不是我在上面的查詢做什麼..我不能修改表...我只是努力與mySql的語法......基於你說我已經這樣做了? – user710502