sql >> Databasteknik >  >> RDS >> Mysql

Dela upp kommaseparerad sträng i rader i mysql

Använd en underfråga med godtyckliga siffror för att dela upp din sträng. Istället för vals kan du använda '1,2,3'.

SELECT
  DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(vals, ',', n.digit+1), ',', -1) val
FROM
  tt1
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3  UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) n
  ON LENGTH(REPLACE(vals, ',' , '')) <= LENGTH(vals)-n.digit;

Se hur det fungerar



  1. Få ID för den infogade raden med C#

  2. Ändra detta från MySQL till MySQLi?

  3. Skapa en användare på MySQL

  4. När ska jag använda CROSS APPLY över INNER JOIN?