解决引号使用错误 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)
广告