ปัญหาและวิธีแก้ไข
คำสั่ง 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 เมื่อเชื่อมต่อใหม่