Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy phần mở rộng file (extension) trong MySQL dùng SUBSTRING_INDEX

Cú pháp

SELECT SUBSTRING_INDEX(cot_ten_file, '.', -1) AS extension FROM bang;
  • Tham số 3 = -1: Lấy phần sau dấu chấm cuối cùng
  • Tham số 3 = 1: Lấy phần trước dấu chấm đầu tiên

Ví dụ: Các tên file phức tạp

Dữ liệu

+---------+--------------------------------------------+
| File_Id | File_Name                                  |
+---------+--------------------------------------------+
| 1       | John.AllMySQLConcept.doc                   |
| 2       | Introductiontojava.txt                     |
| 3       | C and C++.AllDataStructureandAlgorithm.pdf |
| 4       | C.Users.Desktop.AllMySQLScript.sql         |
+---------+--------------------------------------------+

Truy vấn

mysql> SELECT SUBSTRING_INDEX(File_Name, '.', -1) AS AllFileExtension 
    -> FROM getFileExtensionDemo;

Kết quả

+------------------+
| AllFileExtension |
+------------------+
| doc              |
| txt              |
| pdf              |
| sql              |
+------------------+

Xử lý trường hợp đặc biệt

File không có dấu chấm

SELECT SUBSTRING_INDEX('README', '.', -1);  -- Trả về 'README' (toàn bộ)

File kết thúc bằng dấu chấm

SELECT SUBSTRING_INDEX('file.', '.', -1);  -- Trả về '' (rỗng)

File ẩn Unix (.bashrc)

SELECT SUBSTRING_INDEX('.bashrc', '.', -1);  -- Trả về 'bashrc'

Cải tiến: Chỉ lấy extension nếu có dấu chấm

SELECT CASE 
    WHEN File_Name LIKE '%.%' THEN SUBSTRING_INDEX(File_Name, '.', -1)
    ELSE NULL
END AS extension FROM bang;

Ứng dụng thực tế

  • Phân loại file upload
  • Validate file type cho phép
  • Thống kê loại file trong hệ thống
  • Tạo icon theo extension