2013-03-22 172 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