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

MySQL: แปลง VARCHAR เป็น UNSIGNED INTEGER ด้วย CAST

การใช้ 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) แปลงสตริงตัวเลขเป็นจำนวนเต็มเพื่อเรียงลำดับหรือคำนวณได้ถูกต้อง