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

MySQL: ตรวจสอบและแปลงชนิดข้อมูลตัวแปรด้วย CAST

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) - ไวยากรณ์มาตรฐาน SQL
  • CONVERT(expr, type) - ไวยากรณ์ MySQL เฉพาะ รองรับ character set conversion ด้วย

ทั้งสองทำงานคล้ายกันสำหรับการแปลงชนิดข้อมูลพื้นฐาน