解决引号使用错误 ERROR 1064 (42000): Your SQL syntax has an error; check the manual that corresponds to your MySQL server version for the right syntax to use?


在 MySQL 中,您可以使用两种不同的引号类型,一种是反引号,另一种是单引号或双引号。在这种情况下,您可能正在对列名使用单引号,因此出现错误。您需要使用反引号(` `)代替单引号。反引号可用于列名,而单引号可用于字符串。

为了理解上述错误,让我们创建一个表。创建表的查询如下所示:

mysql> create table Backtick_SymbolDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),  
   -> FileName varchar(30),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.81 sec)

如果我们在列周围使用单引号而不是反引号,则会出现错误,如下所示。在这里,我们插入了一个带单引号的值,并且错误是可见的:

mysql> insert into Backtick_SymbolDemo(`Name`,'FileName') values('John','Sum.cpp');
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 ''FileName') values('John','Sum.cpp')' at line 1

为了避免此错误,请在所有列名周围使用反引号,或者不要同时使用反引号或单引号。

插入记录的查询如下所示。这是在两个列名周围使用反引号。

mysql> insert into Backtick_SymbolDemo(`Name`,`FileName`) values('John','Sum.cpp');
Query OK, 1 row affected (0.12 sec)

这是在不使用反引号的情况下插入记录。查询如下所示:

mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Larry','SocketProgram.java');
Query OK, 1 row affected (0.23 sec)
mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Mike','UserCreationScript.sql');
Query OK, 1 row affected (0.10 sec)

使用 select 语句显示表中的所有记录。查询如下所示:

mysql> select *from Backtick_SymbolDemo;

以下是输出:

+----+-------+------------------------+
| Id | Name  | FileName               |
+----+-------+------------------------+
|  1 | John  | Sum.cpp                |
|  2 | Larry | SocketProgram.java     |
|  3 | Mike  | UserCreationScript.sql |
+----+-------+------------------------+
3 rows in set (0.00 sec)

更新于: 2019年7月30日

11K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告