MySQL การใช้งานฟังก์ชัน CONV()

ฟังก์ชัน 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
110101101
211001011
311110000

แปลงค่า 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
แชร์เรื่องนี้