ฟังก์ชัน CONV() ใน MySQL ใช้เพื่อแปลงค่าจากเลขฐานหนึ่งไปเป็นเลขฐานอื่น โดยสามารถแปลงค่าจากเลขฐานใดก็ได้ระหว่าง ฐาน 2 ถึง ฐาน 36
ผลลัพธ์ที่ได้จะเป็น ข้อความ (string) ซึ่งมีประโยชน์ในการเปลี่ยนค่าตัวเลขที่อยู่ในรูปแบบฐานต่าง ๆ เช่น ฐาน 2 (binary), ฐาน 10 (decimal), หรือฐาน 16 (hexadecimal) ไปยังฐานที่ต้องการ
เหมาะสำหรับงานเข้ารหัส, ถอดรหัส, วิเคราะห์ข้อมูลดิบ หรือทำงานกับระบบที่ใช้เลขฐานพิเศษ
ประโยชน์ของฟังก์ชัน CONV()
- แปลงค่าตัวเลขจากเลขฐานหนึ่งไปยังอีกเลขฐานหนึ่งได้อย่างยืดหยุ่น
- ใช้แปลงเลขฐานสิบเป็นฐานสอง หรือฐานสิบหก (เช่น เพื่อเข้ารหัสข้อมูล)
- ใช้ในการแปลงค่ากลับจากเลขฐานพิเศษเป็นฐานสิบ
- ใช้จัดรูปแบบข้อมูลให้อ่านง่ายขึ้นในระบบที่ใช้เลขฐานพิเศษ
- รองรับฐาน 2 ถึง 36 (ใช้อักขระ 0–9 และ A–Z)
รูปแบบการใช้งาน
CONV(N, from_base, to_base)
Nคือค่าตัวเลขที่ต้องการแปลง (ใส่เป็น string ได้ เช่น'A1','1011')from_baseคือเลขฐานของค่า N ต้นทาง (ค่าระหว่าง 2–36)to_baseคือเลขฐานที่ต้องการแปลงไป (ค่าระหว่าง 2–36)
ตัวอย่างการใช้งาน
แปลงเลขฐานสิบ (10) เป็นฐานสอง (2)
SQL
SELECT CONV(10, 10, 2) AS bin_value;
-- ผลลัพธ์: '1010'แปลงเลขฐานสิบ (10) เป็นฐานสิบหก (16)
SQL
SELECT CONV(255, 10, 16) AS hex_value;
-- ผลลัพธ์: 'FF'แปลงจากเลขฐานสิบหก เป็นฐานสิบ
SQL
SELECT CONV('A1', 16, 10) AS dec_value;
-- ผลลัพธ์: '161'สมมติว่ามีตารางชื่อ sensor_data ซึ่งเก็บข้อมูลดังนี้
| sensor_id | binary_value |
|---|---|
| 1 | 10101101 |
| 2 | 11001011 |
| 3 | 11110000 |
แปลงค่า binary ไปฐานสิบ ไปฐานสิบหก
SQL
SELECT sensor_id, binary_value,
CONV(binary_value, 2, 10) AS decimal_value,
CONV(binary_value, 2, 16) AS hex_value
FROM sensor_data;หมายเหตุ
- ฟังก์ชัน
CONV()ให้ผลลัพธ์เป็นข้อความ (VARCHAR) ถ้าต้องใช้ในการคำนวณ ต้องแปลงกลับเป็นINTก่อน - ต้องแน่ใจว่าใส่
from_baseและto_baseถูกต้อง มิฉะนั้นผลลัพธ์อาจคลาดเคลื่อน - ไม่รองรับเลขฐานมากกว่า 36 หรือต่ำกว่า 2
- ถ้าใส่ค่าที่ไม่ใช่ตัวเลขที่ถูกต้องในเลขฐานนั้น (เช่น
'G1'ในฐาน 16) ผลลัพธ์จะเป็นNULL