Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฟังก์ชัน EXPORT_SET () ทำงานใน MySQL อย่างไร


นอกจากนี้ยังเป็นฟังก์ชันสตริง MySQL ที่ใช้สำหรับการค้นหา ด้วยความช่วยเหลือของไวยากรณ์ต่อไปนี้ของฟังก์ชัน EXPORT_SET() เราจะเข้าใจการทำงานของมัน -

ไวยากรณ์

EXPORT_SET(bits, on, off, separator, number of bits)

ที่นี่ในรูปแบบนี้

บิต (ได้หลังจากแปลงจำนวนเต็มเป็นบิต) จะถูกนำมาเปรียบเทียบหากเป็น 1 หรือ 0

‘On’ เป็นอาร์กิวเมนต์ที่สองของฟังก์ชัน มีค่าใดๆ ในเครื่องหมายคำพูด และจะถูกส่งคืนหากค่าของบิตในอาร์กิวเมนต์แรกคือ 1

"ปิด" เป็นอาร์กิวเมนต์ที่สามของฟังก์ชัน มีค่าใดๆ ในเครื่องหมายคำพูด และจะถูกส่งคืนหากค่าบิตในอาร์กิวเมนต์แรกเป็น 0

ตัวคั่นใช้เพื่อวางระหว่างค่าที่ส่งกลับขณะแสดงผลลัพธ์ อาจเป็นอักขระหรือค่าใดก็ได้ในเครื่องหมายคำพูด

จำนวนบิตมีค่าของบิตที่ต้องเปรียบเทียบหากเป็น 1 หรือ 0

การทำงานของฟังก์ชัน EXPORT_SET()

ทำงานดังนี้ -

  • อย่างแรกเลย ค่าจำนวนเต็มที่กำหนดเป็นอาร์กิวเมนต์ที่ 1 จะถูกแปลงเป็นจำนวนบิต (เช่น ใน 0 และ 1) จากนั้นตรวจสอบทุกบิตว่าเป็น 1 หรือ 0 ลำดับการตรวจสอบจากขวาไปซ้าย
  • ตอนนี้ MySQL ตัดสินใจว่าจะทำอย่างไร หลังจากตรวจสอบแล้ว เมื่อบิตเป็น 1 หรือ 0 หากบิตเป็น 1 จะส่งกลับอาร์กิวเมนต์ที่สอง เช่น 'เปิด' และถ้าบิตเป็น 0 จะส่งกลับอาร์กิวเมนต์ที่สาม นั่นคือ "ปิด"
  • การตรวจสอบจะดำเนินต่อไปจนถึงจำนวนบิตที่ระบุในอาร์กิวเมนต์ที่ห้า
  • ตอนนี้ ตาม MySQL ข้างต้นจะส่งคืนผลลัพธ์และวางตัวคั่นระหว่างค่าที่ส่งคืน ค่าจะถูกส่งคืนจากซ้ายไปขวา

ตัวอย่าง

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)

ในทั้งสองตัวอย่าง เราได้ให้ 8 เป็นอาร์กิวเมนต์แรกซึ่งจะถูกแปลงเป็นบิต เช่น 1,000 จากนั้นจะถูกตรวจสอบหา 1 ต่อ 0 สูงสุด 8 บิต (ในตัวอย่างแรก) ขึ้นไป ถึง 4 บิต (ในตัวอย่างที่สอง) เนื่องจาก 8 และ 4 ถูกระบุเป็นอาร์กิวเมนต์ที่ห้าในตัวอย่างที่ 1 และ 2 ตามลำดับ ขณะแสดงผลลัพธ์ เราสามารถสังเกตได้ว่าเครื่องหมายจุลภาค (,) ถูกใช้เป็นตัวคั่น เนื่องจากมีการระบุเป็นอาร์กิวเมนต์ที่สี่ในทั้งสองตัวอย่าง

อย่างที่เราทราบดีว่าลำดับการตรวจสอบมาจากขวาไปซ้าย เช่น ในตัวอย่าง 1000 บิตขวาสุดคือ 0 ดังนั้นอาร์กิวเมนต์ที่สาม เช่น 0 จะถูกส่งคืน จากนั้นจะมีค่า 0 ในสองตำแหน่งถัดไป ดังนั้นอีกสอง 0s จะถูกส่งคืน จากนั้นเป็น 1 ดังนั้นอาร์กิวเมนต์ที่สองเช่น 1 ได้ส่งคืน ในตัวอย่างที่ 2 เราได้รับผลลัพธ์สูงสุด 4 หลัก เนื่องจากการตรวจสอบเสร็จสิ้นแล้วถึง 4 หลัก แต่ในตัวอย่างที่ 1 มีมากถึง 8 หลัก ดังนั้นเราจึงได้รับ 8 หลักในผลลัพธ์ ลำดับของเอาต์พุตจากซ้ายไปขวา ดังนั้นเอาต์พุตจะแสดงเป็น 0,0,0,1,0,0,0,0 ในตัวอย่างที่ 1 และ 0,0,0,1 ในตัวอย่างที่ 2