MySQL ไม่มีคำสั่งตรวจสอบชนิดข้อมูลของตัวแปรโดยตรง (เหมือน typeof ในภาษาอื่น) แต่สามารถแปลงชนิดข้อมูลจากหนึ่งรูปแบบไปอีกรูปแบบหนึ่งได้ด้วยออปอเรเตอร์ CAST()
รูปแบบคำสั่ง CAST
SELECT CAST(variable AS target_type);
ชนิดข้อมูลเป้าหมายที่รองรับ: SIGNED, UNSIGNED, CHAR, DATE, DATETIME, DECIMAL, TIME, BINARY เป็นต้น
ตัวอย่างการใช้งาน
กรณีที่ 1: แปลงสตริงเป็นตัวเลข (UNSIGNED)
SET @StringToInt := '12345';
SELECT CAST(@StringToInt AS UNSIGNED);
ผลลัพธ์: 12345
กรณีที่ 2: แปลงตัวเลขเป็นสตริง (CHAR)
SET @IntToChar := CAST(65 AS CHAR);
SELECT @IntToChar;
ผลลัพธ์: 65 (เป็นสตริง)
กรณีที่ 3: แปลงเป็น SIGNED (รองรับค่าลบ)
SET @NegativeStr := '-100';
SELECT CAST(@NegativeStr AS SIGNED);
ผลลัพธ์: -100
กรณีที่ 4: แปลงเป็น DECIMAL
SET @PriceStr := '123.45';
SELECT CAST(@PriceStr AS DECIMAL(10,2));
ผลลัพธ์: 123.45
การใช้งานในคอลัมน์ตาราง
SELECT CAST(price AS UNSIGNED) AS price_int FROM products;
ข้อแตกต่างระหว่าง CAST และ CONVERT
CAST(expr AS type)- ไวยากรณ์มาตรฐาน SQLCONVERT(expr, type)- ไวยากรณ์ MySQL เฉพาะ รองรับ character set conversion ด้วย
ทั้งสองทำงานคล้ายกันสำหรับการแปลงชนิดข้อมูลพื้นฐาน