SQL解析将一列中的数据分隔到另外两列

时间:2015-07-20 01:15:02

标签: mysql sql

我在MySQL中有一个现有的表,其数据同步数据最终看起来像这样:

id      client      notes           id1         id2
------- ---------   ------------    ----------  ----------
1       a           cat dog|3|90
2       b
3       c           |80|12
4       d           dog only
5       e
6       f           |34|40

我希望它看起来像这样:

id      client      notes           id1         id2
------- ---------   ------------    ----------  ----------
1       a           cat dog|3|90    3           90
2       b
3       c           |80|12          80          12  
4       d           dog only
5       e
6       f           |34|40          34          40

实现此目的的SQL逻辑是什么?分隔符将始终是两个管道。这是我想要一个声明,我可以在phpMyAdmin中应用于表来清理同步并正确地分离出id。

1 个答案:

答案 0 :(得分:1)

您可以使用substring_index()

select id, client, notes,
       substring_index(substring_index(notes, '|', 2), '|', -1) as id1,
       substring_index(notes, '|', -1) as id2
from . . .;