การใช้ CAST() แปลงชนิดข้อมูล
ฟังก์ชัน CAST(expr AS type) แปลงค่าเป็นชนิดข้อมูลที่ระบุ ใช้ UNSIGNED สำหรับจำนวนเต็มบวก
ตัวอย่าง
mysql> create table DemoTable868(Amount varchar(100));
Query OK, 0 rows affected (0.51 sec)
mysql> insert into DemoTable868 values('781');
mysql> insert into DemoTable868 values('990');
mysql> insert into DemoTable868 values('1002');
mysql> insert into DemoTable868 values('560');
mysql> insert into DemoTable868 values('890');
mysql> insert into DemoTable868 values('9890');
mysql> insert into DemoTable868 values('8723');
คำสั่ง CAST และเรียงลำดับตัวเลข
mysql> select cast(Amount as unsigned) as Amount from DemoTable868 order by Amount DESC;
ผลลัพธ์ (เรียงเป็นตัวเลข ไม่ใช่ String):
+--------+
| Amount |
+--------+
| 9890 |
| 8723 |
| 1002 |
| 990 |
| 890 |
| 781 |
| 560 |
+--------+
CAST vs CONVERT
-- CAST (ANSI Standard)
CAST(Amount AS UNSIGNED)
-- CONVERT (MySQL/ODBC Syntax)
CONVERT(Amount, UNSIGNED)
ชนิดข้อมูลที่ใช้กับ CAST
| Type | คำอธิบาย |
|---|---|
UNSIGNED | จำนวนเต็มบวก (0 ถึง 4294967295) |
SIGNED | จำนวนเต็มลบ/บวก |
DECIMAL(m,d) | ทศนิยมแม่นยำ |
CHAR(N) | String ความยาวคงที่ |
DATE, DATETIME, TIME | วันที่/เวลา |
สรุป
ใช้ CAST(varchar_col AS UNSIGNED) แปลงสตริงตัวเลขเป็นจำนวนเต็มเพื่อเรียงลำดับหรือคำนวณได้ถูกต้อง