我是MySQL的新手,因此用语言描述问题很困难,寻找解决方案极具挑战性。
最好直观地解释这个问题:
我想选择(作为数组)exchange_pair_id,它们共享相同的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] }
]
答案 0 :(得分:2)
我正在考虑这样的查询,但我正在评论你的答案。 基本上,您使用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
答案 1 :(得分:0)
尝试select exchange_pair_id from yourtable where pair_id=1
然后它将返回数组[1,183]
答案 2 :(得分:0)
您正在寻找的SQL将是:
SELECT * WHERE pair_id == 1
在不知道您的具体代码是什么样的情况下,我只能猜测您是如何实现对数据库的调用的。我假设您正在对PHP控制器进行某种异步调用。所以不要使用' 1'在查询中,您需要使用从代码中提取的任何变量来了解您要查找的内容。