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

คิวรี่ MySQL ลบข้อความระหว่างวงเล็บเหลี่ยม []

ตัวอย่างการลบข้อความที่อยู่ภายในวงเล็บเหลี่ยม [ ] ออกจากคอลัมน์ข้อความ

mysql> CREATE TABLE DemoTable (
    -> Name TEXT
    -> );
Query OK, 0 rows affected (0.47 sec)
mysql> INSERT INTO DemoTable VALUES('John [John] Smith');
Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO DemoTable VALUES('[Carol] Carol Taylor');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('David [Miller] Miller');
Query OK, 1 row affected (0.14 sec)
mysql> SELECT * FROM DemoTable;
+-----------------------+
| Name                  |
+-----------------------+
| John [John] Smith     |
| [Carol] Carol Taylor  |
| David [Miller] Miller |
+-----------------------+
3 rows in set (0.00 sec)

คิวรี่ลบข้อความระหว่าง [ ] โดยใช้ REPLACE, SUBSTRING, LOCATE, LENGTH, REVERSE:

mysql> SELECT REPLACE(
    ->   Name,
    ->   SUBSTRING(
    ->     Name,
    ->     LOCATE('[', Name),
    ->     LENGTH(Name) - LOCATE(']', REVERSE(Name)) - LOCATE('[', Name) + 2
    ->   ),
    ->   ''
    -> ) AS Name
    -> FROM DemoTable;

ผลลัพธ์:

+---------------+
| Name          |
+---------------+
| John Smith    |
| Carol Taylor  |
| David Miller  |
+---------------+
3 rows in set (0.03 sec)

หมายเหตุ: สูตรคำนวณตำแหน่งและความยาวของข้อความในวงเล็บซับซ้อน หากเป็นไปได้ ควรทำความสะอาดข้อมูลระหว่างนำเข้า (ETL) หรือใช้ภาษาโปรแกรมมิ่งช่วยแทน