Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL เกิดข้อผิดพลาดเมื่อชื่อตาราง "จับคู่" ไม่ได้ล้อมรอบด้วยเครื่องหมายคำพูดเดียว?


อย่าใช้เครื่องหมายคำพูดเดียว คุณต้องใช้ backticks รอบชื่อตารางที่ตรงกัน เนื่องจากเป็นชื่อที่สงวนไว้ใน MySQL ต่อไปนี้เป็นข้อผิดพลาดที่เกิดขึ้น :

mysql> select *from match;ERROR 1064 (42000) :คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณสำหรับไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ 'จับคู่' ที่บรรทัด 1

ให้เราสร้างตารางและแก้ไขข้อผิดพลาดข้างต้นก่อนโดยใช้ backticks รอบการจับคู่คำที่สงวนไว้ซึ่งใช้เป็นชื่อตาราง -

mysql> สร้างตาราง `match` ( Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, PlayerName varchar(20)); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก ตอนนี้ ทุกที่ที่ใช้คำสงวน ให้ล้อมรอบด้วยเครื่องหมายย้อนกลับ -

mysql> แทรกลงในค่า `match` (PlayerName) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า 'match' (PlayerName) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า 'match' (PlayerName) ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า 'match' (PlayerName) ('Mike');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)mysql> แทรกลงในค่า `match` (PlayerName) ('Sam'); Query OK ได้รับผลกระทบ 1 แถว (0.14 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก `match`;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+-----------+| รหัส | ชื่อผู้เล่น |+----+-----------+| 1 | คริส || 2 | บ๊อบ || 3 | เดวิด || 4 | ไมค์ || 5 | แซม |+----+------------+5 แถวในชุด (0.00 วินาที)