我是 MySQL 新手,因此用语言描述问题很困难,并且寻找解决方案也极具挑战性。
这个问题最好通过视觉来解释:
我想选择(作为数组)共享相同pair_id的exchange_pair_id。
因此,在上面的数据中,我的 MySQL 查询将返回一个对象:
{ pair_id: 1, exchange_pair_id: [183, 1] }
我知道这是一个被屠杀的问题,但我不知道要搜索什么词来解决这个问题。
为了清晰/简洁而更新:
+------------------+-------------+---------+
| exchange_pair_id | exchange_id | pair_id |
+------------------+-------------+---------+
| 1 | 3 | 1 |
+------------------+-------------+---------+
| 183 | 1 | 1 |
+------------------+-------------+---------+
| 69 | 2 | 2 |
+------------------+-------------+---------+
| 12 | 4 | 2 |
+------------------+-------------+---------+
| 2 | 3 | 2 |
+------------------+-------------+---------+
| 3 | 3 | 3 |
+------------------+-------------+---------+
Javascript MySQL 选择查询的所需输出:
[
{ pair_id: 1, exchange_pair_id: [1, 183] },
{ pair_id: 2, exchange_pair_id: [69, 12, 2] },
{ pair_id: 3, exchange_pair_id: [3] }
]
最佳答案
我正在考虑这样的查询,但我正在评论中等待您的答复。 基本上,您使用 GROUP BY 在两个不同的列中获取每个pair_id 的值:
SELECT pair_id, MIN(exhange_pair_id) AS id1, MAX(exchange_pair_id) AS id2
FROM yourtable
GROUP BY pair_id;
更新版本:您可以在您的数据上尝试一下吗? 在这种情况下,MYSQL 允许您使用分隔符 (,) 连接字段
SELECT pair_id, GROUP_CONCAT(exhange_pair_id) AS exhange_pair_id
FROM yourtable
GROUP BY pair_id
关于javascript - MySQL 选择共享该字段值的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46365942/