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

แทนที่ข้อความหลัง / ตัวสุดท้ายในเส้นทางไดเรกทอรี MySQL

ใช้ SUBSTRING_INDEX() หาตำแหน่ง / ตัวสุดท้าย แล้ว CONCAT() และ LEFT() สร้างเส้นทางใหม่

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> FolderName VARCHAR(100),
    -> FolderLocation VARCHAR(200)
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES('CProgram', 'C:/AllPrograms/.....');
mysql> INSERT INTO DemoTable VALUES('Images', 'E:/MyImage/home/garbage');

แสดงข้อมูลก่อนอัปเดต

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+------------+-------------------------+
| FolderName | FolderLocation          |
+------------+-------------------------+
| CProgram   | C:/AllPrograms/.....    |
| Images     | E:/MyImage/home/garbage |
+------------+-------------------------+

คำสั่งอัปเดตแทนที่ส่วนหลัง / ตัวสุดท้าย

mysql> UPDATE DemoTable
    -> SET FolderLocation = CONCAT(
    ->   LEFT(FolderLocation, CHAR_LENGTH(FolderLocation) - CHAR_LENGTH(SUBSTRING_INDEX(FolderLocation, '/', -1))),
    ->   FolderName
    -> );

ตรวจสอบผลลัพธ์

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+------------+-------------------------+
| FolderName | FolderLocation          |
+------------+-------------------------+
| CProgram   | C:/AllPrograms/CProgram |
| Images     | E:/MyImage/home/Images  |
+------------+-------------------------+

คำอธิบาย: SUBSTRING_INDEX(..., '/', -1) = ส่วนหลัง / ตัวสุดท้าย | CHAR_LENGTH คำนวณความยาว | LEFT ตัดส่วนหน้าเก็บไว้ | CONCAT ต่อ FolderName ใหม่