Mysql SQL将一列中的分隔数据解析为另两列
我在MySQL中已有一个表,其中包含数据同步数据,结果如下所示:Mysql SQL将一列中的分隔数据解析为另两列,mysql,sql,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
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
我希望它看起来像这样:
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。您可以使用
substring\u index()
:
不要在列中存储分隔数据!非常感谢。这个查询非常有效。作为一个update语句,我遇到了困难:update
table
SETid1
=子字符串索引(notes
,“|”,-1),id2
=子字符串索引(notes
,“|”,2),“|”,1)这将生成“无法添加或更新子行:外键约束失败”。我误解了什么?@CraigTucker。显然,您有某种外键关系,不喜欢在列中插入值;一切都很顺利。谢谢。@CraigTucker:aa现在,你不再有数据库了,你有了文件。