我的查询的mysql查询错误

时间:2011-12-29 10:12:11

标签: mysql mysql-error-1064

我收到了这个错误:

  

#1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在'VALUES(1039,200,'2',NULL,NULL,NULL,'cash',NULL,1)'附近使用'   1

此查询:

  

插入anu_donations   (专案编号,donation_amount,donated_by,donated_by_uid,donation_details,   注释,payment_medium,donor_comments,CREATED_BY)

     

VALUES(1039,100,'1',NULL,NULL,NULL,'cash',NULL,1),VALUES   (1039,200, '2',NULL,NULL,NULL, '现金',NULL,1);

enter image description here

2 个答案:

答案 0 :(得分:1)

您只需要VALUES一次

INSERT INTO anu_donations    
(projectid,donation_amount,donated_by,donated_by_uid,donation_details, 
comments,payment_medium,donor_comments,created_by)

VALUES 
   (1039,100,'1',NULL,NULL,NULL,'cash',NULL,1), 
   (1039,200,'2',NULL,NULL,NULL,'cash',NULL,1);

请参阅INSERT in the MySQL docs

  

使用VALUES语法的INSERT语句可以插入多行。为此,请包含多个列值列表,每个列值都括在括号内并用逗号分隔。例如:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

答案 1 :(得分:0)

INSERT Syntax的SQL语句如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

因此,您可以看到VALUES曾被使用过一次。因此,您需要按如下方式更改SQL:

INSERT INTO anu_donations (projectid,donation_amount,donated_by,donated_by_uid,donation_details, comments,payment_medium,donor_comments,created_by)

VALUES (1039,100,'1',NULL,NULL,NULL,'cash',NULL,1), (1039,200,'2',NULL,NULL,NULL,'cash',NULL,1);