sql查询不工作不知道为什么

时间:2015-01-23 16:57:49

标签: java mysql sql

我已经醒了很长时间,并希望有人可以帮我解决这个问题,然后我去

UPDATE Patrons SET name="Paul Mafinger", ADdress="88 Crazy Street", [Phone(H)]="24767536", hone(M)="6345735467", HomeBranch="Manly", Classification="Adult" WHERE MemberID="3973-6726-6813-1091"

和错误

  

#1064 - 您的SQL语法出错;查看与MySQL服务器版本对应的手册,以便在第1行'Phone(H)="24767536", hone(M)="6345735467", HomeBranch="Manly", Classificatio'附近使用正确的语法

2 个答案:

答案 0 :(得分:1)

MySQL转义字符是后引号,而不是方括号。另外,对字符串使用单引号。双引号可能与列名混淆:

UPDATE Patrons
    SET name = 'Paul Mafinger',
        Address = '88 Crazy Street',
        `Phone(H)` = '24767536',
        `phone(M)` = '6345735467',
         HomeBranch = 'Manly',
         Classification = 'Adult'
     WHERE MemberID = '3973-6726-6813-1091';

我建议您使用“普通”字符命名列,这样它们甚至不需要转义。类似于HomePhoneMobilePhone

答案 1 :(得分:0)

看起来好像应该是:

UPDATE Patrons SET name='Paul Mafinger', ADdress='88 Crazy Street', `[Phone(H)]`='24767536', hone(M)='6345735467', HomeBranch='Manly', Classification='Adult' WHERE MemberID='3973-6726-6813-1091'

您的电话记录包含SQL语法中使用的字符,因此您可以通过用“字符”围绕它来告诉SQL它是一个标识符。

[Phone(H)]='24767536'

更改为:

`[Phone(H)]`='24767536'

你可以看到[Phone(H)=]如何与``字符一起使用还应注意在SQL中,你应该使用单引号而不是双引号来指定String值。