การลบศูนย์ท้ายใน MySQL ด้วยฟังก์ชัน TRIM()
สามารถใช้ฟังก์ชัน TRIM() ร่วมกับการบวกค่า 0 เพื่อกำจัดศูนย์ท้ายหลังจุดทศนิยมใน MySQL ได้ สิ่งนี้มีประโยชน์เมื่อต้องการแสดงตัวเลขในรูปแบบที่กระชับและอ่านง่าย
ไวยากรณ์ (Syntax)
SELECT TRIM(yourColumnName) + 0 AS anyAliasName FROM yourTableName;
ตัวอย่างการใช้งาน
เริ่มต้นด้วยการสร้างตารางทดสอบ:
mysql> CREATE TABLE removeTrailingZero (
-> Number DECIMAL(10,4)
-> );
Query OK, 0 rows affected (0.83 sec)
เพิ่มข้อมูลตัวอย่าง:
mysql> INSERT INTO removeTrailingZero VALUES(10.789);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO removeTrailingZero VALUES(89.90);
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO removeTrailingZero VALUES(8999.70);
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO removeTrailingZero VALUES(0.40);
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO removeTrailingZero VALUES(0.0);
Query OK, 1 row affected (0.16 sec)
ดูข้อมูลก่อนการประมวลผล:
mysql> SELECT * FROM removeTrailingZero;
+-----------+
| Number |
+-----------+
| 10.7890 |
| 89.9000 |
| 8999.7000 |
| 0.4000 |
| 0.0000 |
+-----------+
5 rows in set (0.00 sec)
ใช้คำสั่งลบศูนย์ท้าย:
mysql> SELECT TRIM(Number) + 0 AS WithoutTrailingZero FROM removeTrailingZero;
ผลลัพธ์ที่ได้:
+---------------------+
| WithoutTrailingZero |
+---------------------+
| 10.789 |
| 89.9 |
| 8999.7 |
| 0.4 |
| 0 |
+---------------------+
5 rows in set (0.00 sec)
คำอธิบาย
ฟังก์ชัน TRIM() จะตัดช่องว่างนำหน้าและท้ายสตริง แต่เมื่อใช้กับตัวเลขทศนิยม MySQL จะแปลงตัวเลขเป็นสตริงก่อน การบวก + 0 จะบังคับให้ MySQL แปลงกลับเป็นตัวเลข ทำให้ศูนย์ท้ายหายไปอัตโนมัติ วิธีนี้เหมาะสำหรับชนิดข้อมูล DECIMAL หรือ FLOAT ที่เก็บค่าความแม่นยำคงที่