การแก้ไข Syntax Error จากคอมมา (Comma) ตัวสุดท้ายใน SELECT
Error 1064 เกิดจากการวางคอมมาต่อท้ายรายการคอลัมน์ ก่อนคำสั่ง FROM — MySQL ไม่รองรับ trailing comma ใน SELECT list
Error ที่พบ
mysql> select ClientId, ClientName, ClientAge, from DemoTable1391; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual ... near 'from DemoTable1391' at line 1
สร้างตารางและข้อมูลทดสอบ
mysql> create table DemoTable1391 (
-> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ClientName varchar(20),
-> ClientAge int
-> );
Query OK, 0 rows affected (0.50 sec)
mysql> insert into DemoTable1391(ClientName, ClientAge) values('Chris', 21);
mysql> insert into DemoTable1391(ClientName, ClientAge) values('Bob', 23);
mysql> insert into DemoTable1391(ClientName, ClientAge) values('David', 24);
mysql> insert into DemoTable1391(ClientName, ClientAge) values('Mike', 28);
ข้อมูลในตาราง
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | Chris | 21 | | 2 | Bob | 23 | | 3 | David | 24 | | 4 | Mike | 28 | +----------+------------+-----------+
คำสั่งที่ถูกต้อง (ลบคอมมาตัวสุดท้าย)
mysql> select ClientId, ClientName, ClientAge from DemoTable1391;
ผลลัพธ์
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | Chris | 21 | | 2 | Bob | 23 | | 3 | David | 24 | | 4 | Mike | 28 | +----------+------------+-----------+
สรุปกฎ SELECT list
- คั่นคอลัมน์ด้วยคอมมา
, - ห้าม วางคอมมาต่อท้ายคอลัมน์สุดท้ายก่อน
FROM - บาง database อื่น (เช่น PostgreSQL, SQLite 3.38+) รองรับ trailing comma แล้ว แต MySQL ยังไม่รองรับ
เคล็ดลับป้องกัน
- เขียนคอลัมน์แรกนำหน้า แล้วคอมมานำหน้าคอลัมน์ถัดไป (leading comma style):
SELECT ClientId , ClientName , ClientAge FROM DemoTable1391; - ใช้ IDE/Formatter ที่ตรวจจับ syntax error อัตโนมัติ
- Copy-paste จากรายการคอลัมน์แล้วลบคอมมาตัวสุดท้าย