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

ฟังก์ชันเทียบเท่า PHP basename() ใน MySQL ด้วย SUBSTRING_INDEX()

บทนำ

ฟังก์ชัน basename() ใน PHP ใช้ดึงชื่อไฟล์จากพาธเต็ม ใน MySQL สามารถทำได้ด้วยฟังก์ชัน SUBSTRING_INDEX()

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

mysql> CREATE TABLE DemoTable (
    -> Location VARCHAR(200)
    -> );
Query OK, 0 rows affected (1.02 sec)
mysql> INSERT INTO DemoTable VALUES('C:\\Web\\Sum.java');
mysql> INSERT INTO DemoTable VALUES('E:\\WebDevelopment\\Image1.png');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+------------------------------+
| Location                     |
+------------------------------+
| C:\Web\Sum.java              |
| E:\WebDevelopment\Image1.png |
+------------------------------+
2 rows in set (0.00 sec)

คำสั่งดึงชื่อไฟล์ (เทียบเท่า basename)

mysql> SELECT Location,
    -> SUBSTRING_INDEX(Location, '\\', -1) AS NameOfFile
    -> FROM DemoTable;

ผลลัพธ์

+------------------------------+------------+
| Location                     | NameOfFile |
+------------------------------+------------+
| C:\Web\Sum.java              | Sum.java   |
| E:\WebDevelopment\Image1.png | Image1.png |
+------------------------------+------------+
2 rows in set (0.00 sec)

คำอธิบาย SUBSTRING_INDEX

SUBSTRING_INDEX(str, delim, count)
  • str - สตริงต้นฉบับ
  • delim - ตัวคั่น (delimiter)
  • count - จำนวนครั้งที่เจอ delimiter: บวก = นับจากซ้าย, ลบ = นับจากขวา
  • -1 หมายถึง ส่วนหลัง delimiter ตัวสุดท้าย (ชื่อไฟล์)

สำหรับ Linux/Unix Path (ใช้ /)

SUBSTRING_INDEX(Location, '/', -1)