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

เกิดอะไรขึ้นถ้าใช้ \G และ ; ร่วมกันในคำสั่ง MySQL เดียว


\G ส่งคำสั่งไปรัน และ ; กำหนดจุดสิ้นสุดคำสั่ง ทั้งคู่ให้รูปแบบผลลัพธ์ต่างกัน หากใช้ทั้งสองในคำสั่งเดียว MySQL จะประมวลผลตามลำดับที่พบ: ตัวที่พบก่อนจะกำหนดรูปแบบผลลัพธ์ของคำสั่งนั้น ส่วนตัวที่สองจะทำให้เกิดข้อผิดพลาด "No query specified" เพราะไม่มีคำสั่งให้รันต่อ

ตัวอย่าง 1: ใช้ ; ก่อน \G

mysql> Select CURDATE();\G 
+------------+
| CURDATE()  |
+------------+
| 2017-11-06 |
+------------+
1 row in set (0.00 sec)
ERROR: No query specified

MySQL พบ ; ก่อน แสดงผลแบบตาราง แล้วพบ \G แต่ไม่มีคำสั่งต่อไป จึงรายงานข้อผิดพลาด

ตัวอย่าง 2: ใช้ \G ก่อน ;

mysql> Select CURDATE()\G; 
*************************** 1. row *************************** 
CURDATE(): 2017-11-06 
1 row in set (0.00 sec) 
ERROR: No query specified

MySQL พบ \G ก่อน แสดงผลแบบแนวตั้ง แล้วพบ ; โดยไม่มีคำสั่งต่อไป จึงเกิดข้อผิดพลาด