Creating a MySQL SET's from a string

前端 未结 4 1603
我寻月下人不归
我寻月下人不归 2021-01-18 21:29

Is there a way to create a set from a string of separated values in MySQL? For example:

\'the,quick,brown,fox\' => \'the\',\'quick\',\'brown\',\'fox\'

A

4条回答
  •  长发绾君心
    2021-01-18 21:43

    Tested on MySQL 5.1.41:

    DROP TABLE IF EXISTS n;
    CREATE TEMPORARY TABLE n AS
      SELECT -1 AS N UNION
      SELECT -2 UNION
      SELECT -3 UNION
      SELECT -4 UNION
      SELECT -5;
    
    DROP TABLE IF EXISTS foo;
    CREATE TABLE foo AS
      SELECT 'the,quick,brown,fox' AS csv;
    
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(foo.csv, ',', n.n), ',', 1) AS word
    FROM foo JOIN n
      ON (LENGTH(REPLACE(foo.csv, ',', ''))-LENGTH(foo.csv) <= n.n+1);
    

    Result:

    +-------+
    | word  |
    +-------+
    | fox   |
    | brown |
    | quick |
    | the   |
    +-------+
    

提交回复
热议问题