Computer >> Máy Tính >  >> Lập trình >> MySQL

Hàm EXPORT_SET () hoạt động như thế nào trong MySQL?

Nó cũng là một hàm chuỗi MySQL được sử dụng để tìm kiếm. Với sự trợ giúp của 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)

Đây trong cú pháp này,

Bit (nhận được sau khi chuyển đổi số nguyên thành bit) sẽ được so sánh nếu chúng là 1 hoặc 0.

‘On’ là đối số thứ hai của hàm, có bất kỳ giá trị nào trong dấu ngoặc kép và nó 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 kép và nó 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 sử dụng để đặt giữa các giá trị trả về trong khi hiển thị đầu ra. Nó có thể là bất kỳ ký tự hoặc giá trị nào được đặt trong dấu ngoặc kép.

Một số bit có giá trị là các bit sẽ được so sánh nếu chúng là 1 hoặc 0.

Hoạt động của hàm EXPORT_SET ()

Nó hoạt động như sau -

  • Trước hết, giá trị số nguyên được cung cấp làm đối số thứ nhất sẽ được chuyển đổi thành một số bit (tức là trong 0 và 1s). 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 phải làm gì, sau khi kiểm tra, khi bit là 1 hoặc 0. Nếu bit là 1, nó trả về đối số thứ hai, tức là "on". Và nếu bit là 0, nó sẽ trả về đối số thứ ba, tức là "off".
  • Việc kiểm tra tiếp tục đến số bit được chỉ định trong đối số thứ năm.
  • Bây giờ, dựa trên MySQL ở trên sẽ trả về kết quả đầu ra và đặt dấu phân cách giữa các giá trị được trả về. Các giá trị sẽ đượ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 tôi đã đưa ra 8 là đối số đầu tiên sẽ được chuyển đổi thành bit, tức là 1000, và sau đó sẽ được kiểm tra 1 an 0 lên đến 8 bit (trong ví dụ đầu tiên) trở lên thành 4 bit (trong ví dụ thứ hai) vì 8 và 4 được chỉ định làm đối số thứ năm trong ví dụ thứ nhất và thứ hai tương ứng. Trong khi hiển thị đầu ra, chúng ta có thể thấy rằng dấu phẩy (,) được sử dụng làm dấu phân cách vì nó được chỉ định làm đối số thứ tư trong cả hai ví dụ.

Như chúng ta biết rằng thứ tự kiểm tra là từ Phải sang Trái, tức là trong ví dụ 1000 của chúng ta, bit ngoài cùng bên phải là 0 do đó đối số thứ ba tức là 0 sẽ được trả về, sau đó lại có 0 ở hai vị trí tiếp theo do đó hai số 0 khác sẽ được trả về, sau đó nó là 1 do đó đối số thứ hai tức là 1 đã trả về. Trong ví dụ thứ 2, chúng tôi nhận được đầu ra có tối đa 4 chữ số vì việc kiểm tra đã được thực hiện tới 4 chữ số nhưng trong ví dụ 1, nó có tới 8 chữ số do đó chúng tôi nhận được 8 chữ số trong đầu ra. Thứ tự đầu ra là từ trái sang phải do đó đầu ra được hiển thị là 0,0,0,1,0,0,0,0 trong ví dụ đầu tiên và 0,0,0,1 trong ví dụ thứ 2.