2012-03-29 80 views
0

這讓我瘋狂。我試圖插入值下面的 「統計」 表:如何在WHERE子句中使用_date插入記錄?

_date  spam1 
----------------- 
2011-06-13 

使用

INSERT INTO stats (spam1) VALUES (7) WHERE `_date` = '2011-06-13' 

的MySQL返回

#1064 - You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use 
near 'WHERE `_date` = '2011-06-13'' at line 1 

我不明白。刪除日期周圍的引號或_date附近的反引號也無濟於事。我究竟做錯了什麼?

[編輯] 謝謝 - 你都得到了給予好評:)是我的錯......我當然需要更新,而不是INSERT ...時間休息一下我猜:P

回答

2

你想要一個UPDATE不是INSERT,請嘗試:

UPDATE stats SET `spam1` = 7 WHERE `_date` = '2011-06-13' 
2

INSERT語句可以讓你添加一個新的記錄(新行),以表。你想UPDATE現有的記錄:

UPDATE stats SET spam1 = 7 WHERE `_date` = '2011-06-13'; 
1

有INSERT的兩種主要形式有:

  1. INSERT INTO Table[(columns)] VALUES(...)
  2. INSERT INTO Table[(columns)] SELECT ...

您可以使用WHERE子句的一部分SELECT版本。

你想達到什麼目的?更新,將spam1列值設置爲7,其中日期是給定日期?

UPDATE Stats SET Spam1 = 7 WHERE _Date = '2011-06-13'; 
3

也許你應該考慮使用UPDATE,而不是INSERT

UPDATE stats SET spam1 = 7 WHERE _date = '2011-06-13';