我一直在尝试更新以下内容 neighbors column
在 location table
作为json对象,如下所示,但无法以任何方式使其接近工作状态。你知道查询语法吗?
原始表格:
location
---------------
id name neighbors
1 loc1
2 loc2
3 loc3
4 loc4
5 loc5
附近(这是连接表,place&nextdoor引用location.id)
nearby
-------------------
place nextdoor distance group
1 2 500m g1
1 3 900m g1
2 1 500m g3
2 3 100m g4
2 4 80m g4
更新后需要:
location
---------------
id name neighbors
1 loc1 {"g1":[{"name":"loc2", "distance":"500m"},{"name":"loc3", "distance":"900m"}]}
2 loc2 {"g3":[{"name":"loc1", "distance":"500m"}],"g4":[{"name":"loc3", "distance":"100m"},{"name":"loc4", "distance":"80m"}]}
3 loc3
4 loc4
5 loc5
1条答案
按热度按时间rpppsulh1#
试试这个。在mysql 8上进行了测试。我把它分解成几个步骤,这样你就可以一个接一个地测试每个cte,看看它是如何结合在一起的。
表
更新查询
结果
示例
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=789fb79d10b745414ca7270a5a6ef004
另一个例子是更新后的json提取。
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=fe651372ca754cc05eab842d6fced9a3