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

หารตัวเลขในคอลัมน์และแสดงผลเป็นจำนวนเต็มใน MySQL ด้วย CAST()

บทนำ

การหารตัวเลขใน MySQL จะได้ผลลัพธ์เป็นทศนิยม (Decimal) หากต้องการผลลัพธ์เป็นจำนวนเต็ม (Integer) สามารถใช้ CAST() หรือ FLOOR()

ตัวอย่างการสร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Number INT
    -> );
Query OK, 0 rows affected (0.50 sec)
mysql> INSERT INTO DemoTable(Number) VALUES(10);
mysql> INSERT INTO DemoTable(Number) VALUES(20);
mysql> INSERT INTO DemoTable(Number) VALUES(30);
mysql> INSERT INTO DemoTable(Number) VALUES(40);

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+----+--------+
| Id | Number |
+----+--------+
| 1  | 10     |
| 2  | 20     |
| 3  | 30     |
| 4  | 40     |
+----+--------+
4 rows in set (0.00 sec)

คำสั่งหาร 2 (ผลลัพธ์เป็นทศนิยม)

mysql> SELECT Id, Number, (Number/2) AS DivideBy2 FROM DemoTable;

ผลลัพธ์

+----+--------+-----------+
| Id | Number | DivideBy2 |
+----+--------+-----------+
| 1  | 10     | 5.0000    |
| 2  | 20     | 10.0000   |
| 3  | 30     | 15.0000   |
| 4  | 40     | 20.0000   |
+----+--------+-----------+
4 rows in set (0.00 sec)

คำสั่งหาร 2 และแปลงเป็นจำนวนเต็มด้วย CAST

mysql> SELECT Id, Number, CAST((Number/2) AS UNSIGNED) AS DivideBy2 FROM DemoTable;

ผลลัพธ์

+----+--------+-----------+
| Id | Number | DivideBy2 |
+----+--------+-----------+
| 1  | 10     | 5         |
| 2  | 20     | 10        |
| 3  | 30     | 15        |
| 4  | 40     | 20        |
+----+--------+-----------+
4 rows in set (0.00 sec)

ฟังก์ชันแปลงชนิดข้อมูลที่เกี่ยวข้อง

ฟังก์ชันคำอธิบายตัวอย่าง
CAST(expr AS type)แปลงชนิดข้อมูลมาตรฐาน SQLCAST(3.14 AS UNSIGNED) → 3
CONVERT(expr, type)แปลงชนิดข้อมูล (MySQL specific)CONVERT(3.14, UNSIGNED) → 3
FLOOR(num)ปัดเศษลง (ทศนิยม → จำนวนเต็ม)FLOOR(5.9) → 5
CEILING(num)ปัดเศษขึ้นCEILING(5.1) → 6
ROUND(num, decimals)ปัดเศษตามหลักทศนิยมROUND(5.67, 1) → 5.7

การหารแบบ Integer Division (MySQL 8.0+)

SELECT Number DIV 2 FROM DemoTable;  -- ผลลัพธ์เป็น Integer โดยตรง