2013-03-22 173 views
-2

我用PHP我管理,我嘗試運行此查詢:phpMyAdmin的簡單查詢SQL錯誤

INSERT INTO msumat(tempat_lahir) VALUES ('Jakarta') WHERE umat_id != 10 

查詢應該找到,但我總是從它那裏得到一個錯誤:

#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 umat_id != 10' at line 1 

我的錯誤在哪裏?而且我最近還發現了一些奇怪的事實:

在我的電腦中查詢正在運行''報價但是這個查詢沒有在我朋友的電腦上運行,我必須將''更改爲``。這是在phpmyadmin中的錯誤?謝謝:D

+0

你想要做什麼? – 2013-03-22 02:03:50

+1

一個'INSERT'語句沒有'WHERE'子句,因爲你總是添加一個新行。你的意思是「更新」現有的行嗎? – 2013-03-22 02:03:53

+4

爲了將來的參考,它是絕對幾乎_never_你使用的工具中的錯誤,而不是你自己的代碼中的錯誤:) – 2013-03-22 02:05:07

回答

4

它看起來像是你插入和更新混淆。

插入創建新行並始終提供要插入的值。

更新一組行中的數據。

假設你的意思是這是一個更新:

UPDATE msumat set tempat_lahir = 'Jakarta' where umat_id != 10; 
+2

是的,即時通訊新的SQL。我想因爲我沒有任何價值(NULL)在'tempat_lahir'專欄,我需要插入它,而不是更新它。感謝您的幫助:D – 2013-03-22 02:07:14

+1

請等待10分鐘,系統不允許我現在接受答案:D – 2013-03-22 02:07:56

2

默認情況下,INSERT語句不能WHERE條款。

INSERT INTO tableName (column1, ...) VALUES (Value1,...) 

INSERT語句可以有WHERE條款的唯一情況是,當你執行INSERT INTO..SELECT聲明。

INSERT INTO tableName (column1, ...) 
SELECT column1, ... 
FROM Table_name2 
WHERE .... 

我想你想修改一個現有的列,你需要使用UPDATE

UPDATE msumat 
SET tempat_lahir = 'Jakarta' 
WHERE umat_id <> 10 

永遠記住這一個:

  • INSERT總是被用來在表中添加新的紀錄。
  • UPDATE用於修改在表上的記錄。
+0

是的,感謝您的幫助:D – 2013-03-22 02:09:50