การดึงตัวเลขจากสตริงที่มีรูปแบบคงที่
ใช้ REPLACE() ตัดส่วนที่ไม่ต้องการทิ้ง แล้ว CAST(... AS UNSIGNED) แปลงเป็นตัวเลข
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable1961 (Title TEXT);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1961 VALUES('You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts');
คำสั่ง SQL ดึงตัวเลข 10001
mysql> SELECT CAST(
-> REPLACE(
-> REPLACE('You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts',
-> 'You_can_remove_the_string_part_only-', ''),
-> '-But_You_can_not_remove_the_numeric_parts', ''
-> ) AS UNSIGNED) AS Output
-> FROM DemoTable1961;
ผลลัพธ์:
+--------+
| Output |
+--------+
| 10001 |
+--------+
คำอธิบาย: REPLACE ตัวแรกตัดคำนำหน้า, ตัวที่สองตัดคำท้าย เหลือแต่ตัวเลข แล้ว CAST(... AS UNSIGNED) แปลงเป็นจำนวนเต็ม วิธีนี้เหมาะกับรูปแบบคงที่ หากรูปแบบเปลี่ยนแปลง ควรใช้ Regular Expression (MySQL 8+ REGEXP_SUBSTR)