MySQL INSERT INTO在WHERE子句中失败

时间:2015-04-07 06:00:42

标签: mysql sql

好的,我对这一个感到难过:

mysql> INSERT INTO item (col1) VALUES ('testing') WHERE item_name = 'server1';

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 item_name = 'server1'' at line 1

这里是表格desc(略有消毒):

mysql> desc item;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment | 
| item_name    | varchar(128) | YES  |     |         |                | 
| active       | int(11)      | NO   |     | 0       |                | 
| col1         | varchar(512) | YES  |     | NULL    |                | 
+--------------+--------------+------+-----+---------+----------------+

]我已经尝试过INSERT的一些变化,但我没有得到任何结果。期待有人揭露我遗失的任何明显的东西!

运行:mysql Ver 14.12 Distrib 5.0.95,对于redhat-linux-gnu(x86_64)使用readline 5.1(我知道它已经老了,但我目前无法升级此框)。

2 个答案:

答案 0 :(得分:2)

如果您要更新现有行,请执行以下操作:

UPDATE item
  SET col1 = 'testing'
  WHERE item_name = 'server1';

答案 1 :(得分:1)

您没有正确使用INSERT语句,如果您使用VALUES条款,则无法对其应用WHERE条件。

以下是具有相应语法的相同查询:

INSERT INTO item (col1)
SELECT 'testing'
FROM yourTable
WHERE item_name = 'server1';

希望这会对你有所帮助。