Thứ Hai, 29 tháng 7, 2013

Một số kỹ thuật thông dụng trong MySQL

1. Sử dụng Regx trong truy vấn
Tìm ra tất cả các nhân viên có lastName bắt đầu bằng chữ M, B hoặc T
SELECT lastname,firstname
FROM employees
WHERE lastname REGEXP  '^(M|B|T)'
2. Sử dụng LIMIT
Để lấy ngẫu nhiên một dòng:
SELECT * FROM table  ORDER BY RAND()  LIMIT 1
lấy ngẫu nhiên n dòng:
SELECT * FROM table  ORDER BY RAND()  LIMIT n
Cách trên giải quyết tốt trên những bảng dữ liệu có kích cở nhỏ. Với những bảng lớn thì nó sẽ cho kết quả chậm do phải sắp xếp lại toàn bộ bảng rồi sau đó mới tiến hành lấy ngẫu nhiên. Để giải quyết vấn đề này, chúng ta giải quyết như sau:
·  Trước tiên, lấy ngẫu nhiên ID của một cột. Cột này nên là khóa chính và giá trị tăng tuần tự.
·   Sau đó, lấy ra các dòng dữ liệu dựa trên ID mà chúng ta đã chọn
SET @ID = FLOOR(RAND( )* N) + 1;
 SELECT *  FROM table  WHERE ID >= @ID LIMIT 1
Phân trang
SELECT *
FROM table_name
LIMIT page, limit
page: trang hiện tại
limit: số dòng hiển thị trên một trang

Không có nhận xét nào:

Đăng nhận xét