MySQL EXPORT_SET()
hàm trả về một chuỗi đại diện cho các bit trong một số.
Bạn có khả năng tùy chỉnh cách hàm xuất ra chuỗi. Hàm chấp nhận một số đối số cho phép bạn thực hiện điều này. Khi bạn gọi hàm, bạn cung cấp số được đề cập cũng như các đối số xác định cách kết quả được hiển thị.
Cú pháp
Cú pháp như sau:
EXPORT_SET (bit, bật, tắt [, dấu phân tách [, number_of_bits]])
Dưới đây là giải thích về các đối số:
- bit
- Đây là số mà bạn muốn kết quả trả về. Đối với mỗi bit được đặt trong giá trị này, bạn nhận được một bật chuỗi và đối với mỗi bit không được đặt trong giá trị, bạn sẽ bị tắt sợi dây. Các bit được kiểm tra từ phải sang trái (từ các bit bậc thấp đến bậc cao).
- trên
- Đây là những gì được trả lại cho bất kỳ trên bit.
- tắt
- Đây là những gì được trả lại cho mọi lần tắt bit.
- dấu phân cách
- Đây là đối số tùy chọn mà bạn có thể sử dụng để chỉ định dấu phân tách sẽ sử dụng. Giá trị mặc định là ký tự dấu phẩy. Do đó, nếu bạn không chỉ định đối số này, dấu phẩy sẽ được sử dụng làm dấu phân cách.
- number_of_bits
- Số lượng bit cần kiểm tra. Giá trị mặc định là 64. Nếu bạn cung cấp giá trị lớn hơn, giá trị này sẽ được cắt âm thầm thành 64 nếu lớn hơn 64.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ để chứng minh cách sử dụng cơ bản của chức năng này.
SELECT EXPORT_SET (9, 'On', 'Off', ',', 4);
Kết quả:
+ -------------------------------- + | EXPORT_SET (9, 'Bật', 'Tắt', ',', 4) | + ------------------------------ - + | Bật, Tắt, Tắt, Bật | + -------------------------------- +
Để hiểu kết quả này, chúng ta cần hiểu cách số 9
được biểu diễn bằng bit. Để thực hiện việc này, chúng ta có thể sử dụng BIN()
hàm để xuất ra biểu diễn nhị phân của số 9.
CHỌN BIN (9);
Kết quả:
+ -------- + | BIN (9) | + -------- + | 1001 | + -------- +
Vì vậy, chúng ta có thể thấy rằng biểu diễn nhị phân của 9 là 1001
. Mỗi 1
là một trên bit (nó được thiết lập) và mỗi 0
là một tắt bit (nó chưa được đặt).
Ví dụ 2 - Thay đổi đối số thứ 2 và thứ 3
Chúng ta có thể lấy ví dụ trước và thay đổi đối số thứ hai và thứ ba.
SELECT EXPORT_SET (9, 'Y', 'N', ',', 4);
Kết quả:
+ ----------------------------- + | EXPORT_SET (9, 'Y', 'N', ',', 4) | + ----------------------------- + | Y, N, N, Y | + ----------------------------- +
Vì vậy, bây giờ cho mỗi trên bit, chúng tôi nhận được Y và từng tắt bit trả về N .
Chúng tôi thậm chí có thể thay đổi nó để các số một và số không được trả về:
SELECT EXPORT_SET (9,1,0, ',', 4);
Kết quả:
+ ------------------------- + | EXPORT_SET (9,1,0, ',', 4) | + ------------------------- + | 1,0,0,1 | + ------------------------- +
Ví dụ 3 - Thay đổi Đối số thứ 4 (dấu phân cách)
Trong các ví dụ trước, chúng tôi chỉ định rõ ràng một dấu phẩy là dấu phân cách. Đây cũng là giá trị mặc định.
Chúng tôi có thể thay đổi dấu phân cách thành một cái gì đó khác nếu được yêu cầu.
SELECT EXPORT_SET (9,1,0, '-', 4);
Kết quả:
+ ------------------------- + | EXPORT_SET (9,1,0, '-', 4) | + ------------------------- + | 1-0-0-1 | + ------------------------- +
Và đây là những gì sẽ xảy ra nếu chúng tôi chỉ định chuỗi trống làm dấu phân tách:
SELECT EXPORT_SET (9,1,0, '', 4);
Kết quả:
+ ------------------------ + | EXPORT_SET (9,1,0, '', 4) | + ------------------------ + | 1001 | + ------------------------ +
Ví dụ 4 - Thay đổi đối số thứ 5
Đối số thứ năm chỉ định bao nhiêu bit để kiểm tra. Trong ví dụ trước, chúng tôi đã sử dụng 4
là giá trị, vì vậy chỉ có bốn bit được kiểm tra (và trả về). Chúng tôi có thể tăng hoặc giảm giá trị này theo yêu cầu, bằng cách chỉ định một giá trị khác làm đối số thứ tư.
SELECT EXPORT_SET (9,1,0, '-', 10);
Kết quả:
+ -------------------------- + | EXPORT_SET (9,1,0, '-', 10) | + -------------------------- + | 1-0-0-1-0-0-0-0-0-0 | + -------------------------- +Trong ví dụ này, chúng tôi đã tăng số bit được kiểm tra lên 10.
Hãy nhớ rằng, các bit được kiểm tra từ phải sang trái, vì vậy các số không thừa trong ví dụ này thực sự dành cho các số không bậc cao. Vì vậy, nó theo thứ tự ngược lại với biểu diễn nhị phân thực tế.
Dưới đây là một ví dụ để chứng minh ý tôi muốn nói:
CHỌN BIN (567), EXPORT_SET (567,1,0, '', 10);Kết quả:
+ ------------ + --------------------------- + | BIN (567) | EXPORT_SET (567,1,0, '', 10) | + ------------ + ---------------------- ----- + | 1000110111 | 1110110001 | + ------------ + --------------------------- +Trong trường hợp này, chúng trông giống như hình ảnh phản chiếu. Về cơ bản, kết quả của
EXPORT_SET()
theo thứ tự ngược lại thànhBIN()
.Giá trị mặc định cho đối số thứ năm là 64, vì vậy nếu chúng ta bỏ qua đối số này, thì đó là số lượng bit sẽ được kiểm tra.
SELECT EXPORT_SET (9,1,0, '-');Kết quả:
+ ---------------------------------------------- -------------------------------------------------- --------------------------------- + | 1-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0 | + --------------------- -------------------------------------------------- -------------------------------------------------- -------- +Giá trị này được cắt âm thầm thành 64, vì vậy nếu bạn cung cấp giá trị bên ngoài phạm vi này, giá trị đó sẽ được cắt thành 64.
SELECT EXPORT_SET (9,1,0, '-', 500);Kết quả:
+ ---------------------------------------------- -------------------------------------------------- --------------------------------- + | 1-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0 | + --------------------- -------------------------------------------------- -------------------------------------------------- -------- +Đó là một số nguyên không dấu, vì vậy kết quả tương tự nếu bạn sử dụng giá trị âm:
SELECT EXPORT_SET (9,1,0, '-', - 4);Kết quả:
+ ---------------------------------------------- -------------------------------------------------- --------------------------------- + | 1-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0 | + --------------------- -------------------------------------------------- -------------------------------------------------- -------- +Ví dụ 5 - Sử dụng Giá trị Mặc định
Chúng tôi có thể bỏ qua hai đối số cuối cùng để sử dụng các giá trị mặc định:
SELECT EXPORT_SET (9, 'On', 'Off');Kết quả:
+ ---------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------- + | Bật, Tắt, Tắt, Bật, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt, Tắt | + --------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------------------------- +