解決引號使用錯誤 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+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告