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

แยกตัวเลขจากสตริงยาวคั่นด้วย underscore และ hyphen ใน MySQL

การดึงตัวเลขจากสตริงที่มีรูปแบบคงที่

ใช้ 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)