Đây cũng là hàm chuỗi MySQL dùng để tìm kiếm. Với cú pháp sau của hàm EXPORT_SET(), chúng ta có thể hiểu cách hoạt động của nó:
Cú pháp
EXPORT_SET(bits, on, off, separator, number_of_bits)
Ở cú pháp này:
- Bits (được lấy sau khi chuyển đổi số nguyên thành bit) được so sánh xem chúng là 1 hay 0.
- 'On' là đối số thứ hai của hàm, có bất kỳ giá trị nào trong dấu ngoặc và sẽ được trả về nếu giá trị của một bit, trong đối số đầu tiên, là 1.
- 'Off' là đối số thứ ba của hàm, có bất kỳ giá trị nào trong dấu ngoặc và sẽ được trả về nếu giá trị của một bit, trong đối số đầu tiên, là 0.
- Dấu phân cách được dùng để đặt giữa các giá trị trả về khi hiển thị đầu ra. Nó có thể là bất kỳ ký tự hoặc giá trị nào đặt trong dấu ngoặc.
- Số bit có giá trị của các bit cần so sánh xem chúng là 1 hay 0.
Cách hoạt động của hàm EXPORT_SET()
Nó hoạt động như sau:
- Đầu tiên, giá trị số nguyên cho đối số thứ nhất được chuyển đổi thành số bit (tức là 0 và 1). Sau đó, mỗi bit được kiểm tra xem nó là 1 hay 0. Thứ tự kiểm tra là từ phải sang trái.
- Bây giờ, MySQL quyết định làm gì sau khi kiểm tra: nếu bit là 1, trả về đối số thứ hai ('on'); nếu bit là 0, trả về đối số thứ ba ('off').
- Việc kiểm tra tiếp tục đến số bit được chỉ định trong đối số thứ năm.
- Dựa trên trên, MySQL trả về đầu ra và đặt dấu phân cách giữa các giá trị trả về. Các giá trị được trả về từ trái sang phải.
Ví dụ
mysql> SELECT EXPORT_SET(8, '1', '0', ',', 8); +-------------------------------+ | EXPORT_SET(8, '1', '0', ',', 8) | +-------------------------------+ | 0,0,0,1,0,0,0,0 | +-------------------------------+ 1 row in set (0.00 sec) mysql> SELECT EXPORT_SET(8, '1', '0', ',', 4); +-------------------------------+ | EXPORT_SET(8, '1', '0', ',', 4) | +-------------------------------+ | 0,0,0,1 | +-------------------------------+ 1 row in set (0.00 sec)
Trong cả hai ví dụ, chúng ta đưa 8 làm đối số thứ nhất, sẽ được chuyển thành bit (1000), sau đó kiểm tra 1 và 0 lên đến 8 bit (ví dụ 1) và 4 bit (ví dụ 2) vì 8 và 4 được chỉ định làm đối số thứ năm. Khi hiển thị đầu ra, ta quan sát dấu phẩy (,) được dùng làm dấu phân cách vì nó được chỉ định làm đối số thứ tư. Thứ tự kiểm tra từ phải sang trái: trong ví dụ 1000, bit phải nhất là 0 nên đối số thứ ba (0) được trả về, tiếp tục hai 0 nữa, rồi gặp 1 nên đối số thứ hai (1) được trả về. Ví dụ 2 chỉ nhận đầu ra 4 chữ số vì kiểm tra đến 4 bit, ví dụ 1 đến 8 bit nên nhận 8 chữ số. Thứ tự đầu ra từ trái sang phải nên hiển thị 0,0,0,1,0,0,0,0 và 0,0,0,1.