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

แยกส่วนจำนวนเต็มและทศนิยมของคอลัมน์ FLOAT ใน MySQL

การแยกตัวเลขก่อนและหลังจุดทศนิยม

ใช้ SUBSTRING_INDEX() แยกสตริงด้วยตัวคั่น '.' แล้วแปลงเป็นตัวเลขด้วย CAST(... AS UNSIGNED)

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

mysql> CREATE TABLE DemoTable1951 (Value1 VARCHAR(20));
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO DemoTable1951 VALUES('100.50');
mysql> INSERT INTO DemoTable1951 VALUES('70.90');
mysql> INSERT INTO DemoTable1951 VALUES('1000.55');

คำสั่ง SQL แยกส่วน

mysql> SELECT CAST(SUBSTRING_INDEX(Value1, '.', 1) AS UNSIGNED) AS FirstValue,
    -> CAST(SUBSTRING_INDEX(Value1, '.', -1) AS UNSIGNED) AS SecondValue
    -> FROM DemoTable1951;

ผลลัพธ์:

+------------+-------------+
| FirstValue | SecondValue |
+------------+-------------+
| 100        | 50          |
| 70         | 90          |
| 1000       | 55          |
+------------+-------------+

คำอธิบาย: SUBSTRING_INDEX(str, '.', 1) ส่วนก่อนจุด, SUBSTRING_INDEX(str, '.', -1) ส่วนหลังจุด CAST(... AS UNSIGNED) แปลงเป็นจำนวนเต็มบวก