Python MySQL - Giới hạn
Trong khi tìm nạp các bản ghi nếu bạn muốn giới hạn chúng bằng một số cụ thể, bạn có thể làm như vậy bằng cách sử dụng mệnh đề LIMIT của MYSQL.
Thí dụ
Giả sử chúng ta đã tạo một bảng trong MySQL với tên EMPLOYEES là -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)
Và nếu chúng ta đã chèn 4 bản ghi vào nó bằng cách sử dụng câu lệnh INSERT là -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Câu lệnh SQL sau truy xuất hai bản ghi đầu tiên của bảng Nhân viên bằng cách sử dụng mệnh đề LIMIT.
SELECT * FROM EMPLOYEE LIMIT 2;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 19| M | 2000 |
| Raj | Kandukuri | 20| M | 7000 |
+------------+-----------+------+------+--------+
2 rows in set (0.00 sec)
Mệnh đề giới hạn sử dụng Python
Nếu bạn gọi execute() trên đối tượng con trỏ bằng cách chuyển truy vấn SELECT cùng với mệnh đề LIMIT, bạn có thể lấy số lượng bản ghi cần thiết.
Thí dụ
Ví dụ python sau tạo và điền vào một bảng có tên EMPLOYEE và bằng cách sử dụng mệnh đề LIMIT, nó sẽ tìm nạp hai bản ghi đầu tiên của nó.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE LIMIT 2'''
#Executing the query
cursor.execute(sql)
#Fetching the data
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
Đầu ra
[('Krishna', 'Sharma', 26, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]
LIMIT với OFFSET
Nếu bạn cần giới hạn các bản ghi bắt đầu từ bản ghi thứ n (không phải bản ghi đầu tiên), bạn có thể làm như vậy bằng cách sử dụng OFFSET cùng với LIMIT.
Example
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE LIMIT 2 OFFSET 2'''
#Executing the query
cursor.execute(sql)
#Fetching the data
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
Output
[('Ramya', 'Ramapriya', 29, 'F', 5000.0), ('Mac', 'Mohan', 26, 'M', 2000.0)]