2012-07-27 97 views
-3

可能重复:
How to add a where clause in a MySQL Insert statement?SQL INSERT语句错误 - 错误的Where子句

我写与WHERE子句SQL INSERT语句。

INSERT INTO House (ID ,ADDRESS) VALUES ('12','LONDON') WHERE OWNER='1'; 

的错误,我得到:

ERROR 1064 (42000): 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 OWNER='1'' at line 1 
+0

http://stackoverflow.com/questions/2349993/how-to-add-a-where-clause-in-a-mysql-insert-statement同样的问题 – Jalpesh 2012-07-27 05:53:44

回答

4

WHERE用于UPDATE query。如果得到where子句,请为您的查询使用UPDATE。

+0

我想我需要的是一个'UPDATE'查询。谢谢 – 2012-07-27 05:54:37

+0

'UPDATE House Set ID ='12',values ='LONDON'WHERE OWNER ='1';' – sel 2012-07-27 05:56:40

1

INSERT INTO没有一个WHERE子句。去掉它。

1

如果您从表中进行选择或更新表,则可以使用WHERE子句。

所以你wouls通常有一个像

INSERT INTO Table (Columns...) SELECT Columns... FROM SomeOtherTable WHERE Condition 

你的情况,你需要使用

INSERT INTO House (ID ,ADDRESS) VALUES ('12','LONDON') 
4

不能使用WHERE条款与INSERT查询东西..

如果您如果记录已存在,则需要更新记录

INSERT INTO House (OWNER, ID ,ADDRESS) VALUES ('1', '12','LONDON') 
ON DUPLICATE KEY UPDATE ID = '12', ADDRESS = 'LONDON' 

的 '对重复KEY' 语句仅适用于PRIMARY KEYUNIQUE

检查这个link更多信息

1

WHERE子句中亘古不变的与INSERT INTO工作发言。您可以使用子句与SELECT语句

正确的代码,你会像:

INSERT INTO府(ID,地址)的值(12, '伦敦');