在MySQL中,可以使用两种不同类型的引号,即反引号和另一种是单引号或双引号。在这种情况下,也许您对列名使用了单引号,这就是为什么会出错。您需要使用反引号(``)而不是单引号。Backtick可以与列名一起使用,而单引号可以用于字符串。
要了解上述错误,让我们创建一个表。创建表的查询如下-
mysql> create table Backtick_SymbolDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> FileName varchar(30), -> PRIMARY KEY(Id) -> );
如果我们在列周围使用单引号而不是反引号,则会发生错误,如下所示。在这里,我们插入了一个带有单引号的值,并且该错误可见-
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');
这是不使用反引号的插入记录。查询如下-
mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Larry','SocketProgram.java'); mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Mike','UserCreationScript.sql');
使用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)