mysql - 查询返回矩阵

标签 mysql

我有一个描述距离矩阵的表格。是这样的

idOrigin idDestiny distance
 0          0         0
 0          1         1
 0          2         2
 1          0         1
 1          1         0
 1          2         1
 2          0         2
 2          1         1
 2          2         0

我希望返回这样的数据

0 1 2
1 0 1
2 1 0

行代表 idOrigin,列代表 idDestiny。

有没有办法得到这个输出?要么使用纯 MySQL?

最佳答案

您可以为每组 idOrigin 值选择一行逗号分隔的 destination 值,其中 destination 值按 排序idDestiny 通过使用 group_concat。这假定从中选择的表没有任何缺失的坐标,否则会生成不正确的矩阵。

select group_concat(destination order by idDestiny)
from mytable
group by idOrigin
order by idOrigin

http://sqlfiddle.com/#!2/45fde4/3

关于mysql - 查询返回矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25860275/

相关文章:

字符串字段中的 Mysql 错误日期(数据)如何查找/验证?

php - 跨 3 个数据库表的产品搜索

Mysql 事件提要设计

mysql - Dapper 与 MySQL 和 ASP.NET CORE 2 - 插入模型失败

php - var 对 mysql 不受影响

数组内的 PHP 对象(如何 : If array key is 0, 返回 0。否则如果数组键为 2,则返回 2。基本逻辑)

MySQl 转储不适用于防火墙

mysql - 如何使用二进制日志恢复数据库数据?

mysql - 如何使用 ID 从 Sqlite 中删除一行,其中我的 ID 是二进制数据 (GUID)

mysql - 将产品属性表与产品表连接起来以显示产品