逗号将mysql中的值分隔为多行

时间:2011-11-11 08:47:28

标签: mysql

我在mysql查询中遇到问题,我需要mysql查询才能显示以下输出,我还需要输入csv或excel或pdf报告。

表1:

id : nos
---------
1    12,13,14
2    14
3    14,12

表2:

id : values
------------
12   raja
13   rames
14   ravi

我想要这样的输出:

id  values
---------------------
1   raja
1   rames
1   ravi
2   ravi
3   ravi
3   raja

3 个答案:

答案 0 :(得分:1)

以下查询将拆分列表,但它不太可能在大型表上运行良好。

SELECT table1.id, table2.values
FROM table1
    JOIN table2 ON CONCAT(',', table1.nos, ',') LIKE CONCAT(',' table2.id, ',')

答案 1 :(得分:0)

您需要将表1中的数据保存在多个记录中。 例如,数据将是

id : nos
---------
1    12
1    13
1    14
2    14
3    14
3    12

然后您可以使用以下查询来获得结果

select table1.id, table2.values from table1,table2 where table1.nos=table2.id

答案 2 :(得分:0)

如果您有nos1,nos2,nos3 ... ecc

SELECT a.id,a.nos
        b.id,b.values
FROM Table1 as a, Table2 as b
WHERE (a.nos1 = b.id) OR
   (a.nos2 = b.id) OR
   (a.nos3 = b.id)