Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да разделя низ от записи, разделени със запетая, и да ги подредим последователно в MySQL?

Можете да използвате MySQL SUBSTRING_INDEX(). Той ще върне подниз от дадения низ, разделен със запетая, преди определен брой появявания на разделителя.

Опитайте това, изглежда работи добре:

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;

Проверете това..SQL Fiddle ТУК

За по-нататъшно проучване отидете на MySQL Split String Function



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. код за търсене в сървлет към mysql?

  2. mysqli или умре, трябва ли да умре?

  3. Ляво присъединяване с условие

  4. Разгръщане на сървър Percona в хибриден облак

  5. mysql Множество чужди ключове в таблица към един и същ първичен ключ