Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để tách chuỗi bản ghi được phân tách bằng dấu phẩy và sắp xếp sau đó tuần tự trong MySQL?

Bạn có thể sử dụng MySQL SUBSTRING_INDEX (). Nó sẽ trả về chuỗi con từ chuỗi được phân tách bằng dấu phẩy đã cho trước một số lần xuất hiện cụ thể của dấu phân cách.

Hãy thử cách này, nó có vẻ hoạt động tốt:

SELECT ID
       ,SUBSTRING_INDEX(SUBSTRING_INDEX(t.AgentID, ',', n.n), ',', -1) Agent
       ,Name
       ,SUBSTRING_INDEX(SUBSTRING_INDEX(t.Return_Date, ',', n.n), ',', -1) Return_Date
FROM table1 t CROSS JOIN 
 (
   SELECT a.N + b.N * 10 + 1 n
   FROM 
     (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
    ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
   ORDER BY n
  ) n

WHERE n.n <= 1 + (LENGTH(t.Return_Date) - LENGTH(REPLACE(t.Return_Date, ',', '')))
ORDER BY ID;

Kiểm tra cái này .. SQL Fiddle TẠI ĐÂY

Để nghiên cứu thêm, hãy truy cập Hàm chia chuỗi MySQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối:Mất kết nối với máy chủ MySQL lúc 'đang đọc gói thông tin ban đầu', lỗi hệ thống:0

  2. Cách cung cấp các truy vấn mysql từ bash

  3. Cách sửa nhóm truy vấn với only_full_group_by

  4. Lặp lại một Truy vấn chèn trong PHP

  5. MySQL GROUP_CONCAT thoát