【问题标题】:MySQL: Output rows created from columns containing delimited data [duplicate]MySQL:从包含分隔数据的列创建的输出行[重复]
【发布时间】:2015-09-06 04:59:39
【问题描述】:

假设我在 MySQL 中有以下数据:

**bond** | **node** | **edges**
foo      |    1     |    2,3
hak      |    2     |    1
wat      |    3     |    1,2

我希望返回结果以创建适合在 Cytoscape 中可视化的数据。它要求每个节点都有一条专用于每条边的线。输出如下所示:

**bond** | **node** | **edges**
foo      |    1     |    2
foo      |    1     |    3
hak      |    2     |    1
wat      |    3     |    1
wat      |    3     |    2

我认为 PIVOT 运算符可能会以某种方式工作,但我没有运气。

【问题讨论】:

    标签: mysql sql cytoscape


    【解决方案1】:

    假设您有一个边缘主表,其中存储了边缘的所有可能值。

    如果我的假设是错误的,我的答案就不会成立

    SELECT bond, node, edgemaster.edgeid FROM mytable
    JOIN edgemaster ON FIND_IN_SET(edgemaster.edgeid, mytable.edges)
    ORDER BY bond, node, edgemaster.edgeid
    

    Sql Fiddle

    【讨论】:

    • 提供的解决方案产生了预期的结果,将“mytable”中的条目连接到边缘主表。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    相关资源
    最近更新 更多