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

วิธีแก้ไขข้อผิดพลาด MySQL syntax ใกล้ 'OPTION SQL_SELECT_LIMIT=10'


ปัญหาและวิธีแก้ไข

คำสั่ง SET OPTION ถูก deprecated แล้วใน MySQL เวอร์ชันใหม่ ควรใช้ SET SQL_SELECT_LIMIT แทนโดยตรง

รูปแบบคำสั่ง

SET SQL_SELECT_LIMIT=yourIntegerValue;

ตัวอย่างการใช้งาน

สร้างตารางทดสอบ

mysql> create table MySQLSelectDemo 
    -> ( 
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY 
    -> ); 
Query OK, 0 rows affected (0.99 sec)

เพิ่มข้อมูลทดสอบ 37 แถว

mysql> INSERT INTO MySQLSelectDemo VALUES(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); 
Query OK, 37 rows affected (0.20 sec) 
Records: 37 Duplicates: 0 Warnings: 0

แสดงข้อมูลทั้งหมดก่อนตั้งค่า LIMIT

mysql> SELECT * FROM MySQLSelectDemo;

ผลลัพธ์จะแสดง 37 แถว (Id 1-37)

กรณีที่ 1: ตั้งค่า SQL_SELECT_LIMIT = 3

mysql> SET SQL_SELECT_LIMIT=3; 
Query OK, 0 rows affected (0.00 sec)

เมื่อ query อีกครั้ง จะได้แค่ 3 แถวแรก:

mysql> SELECT * FROM MySQLSelectDemo;
+----+
| Id |
+----+
| 1  |
| 2  |
| 3  |
+----+
3 rows in set (0.00 sec)

กรณีที่ 2: ตั้งค่า SQL_SELECT_LIMIT = 10

mysql> SET SQL_SELECT_LIMIT=10; 
Query OK, 0 rows affected (0.00 sec)

จะได้ 10 แถวแรก:

mysql> SELECT * FROM MySQLSelectDemo;
+----+
| Id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
| 5  |
| 6  |
| 7  |
| 8  |
| 9  |
| 10 |
+----+
10 rows in set (0.00 sec)

หมายเหตุ: การตั้งค่า SQL_SELECT_LIMIT จะมีผลต่อ session นั้นๆ เท่านั้น และจะ reset เมื่อเชื่อมต่อใหม่