我正在寻找一种有效的方法来检索MySQL查询中具有每个相关#menu-button {
width:100px;
height:50px;
background:red;
}
#bkg {
top:10px;
left:10px;
width:100px;
height:100px;
background-color:#00ff00;
transition: 10s forwards;
}
#bkg.scalenew {
-webkit-transform: scale(1.5)
}
的唯一项。以下示例表和所需的输出(显示为id
)说明了目标。到目前为止,我的进度也在下面。
表格
json
所需的输出
+----+------+------+
| id | var1 | var2 |
+----+------+------+
| 1 | a | b |
+----+------+------+
| 2 | a | c |
+----+------+------+
| 3 | c | b |
+----+------+------+
| 4 | a | c |
+----+------+------+
| 5 | a | b |
+----+------+------+
到目前为止,我有此查询,该查询可准确返回匹配var1和var2唯一的行:
{
var1: a,
var2: b,
ids: 1,5
},
{
var1: a,
var2: c,
ids: 2,4
}
我遇到的问题还包括将相关的`SELECT base_currency,quote_currency FROM pf_items GROUP BY base_currency,quote_currency`
字段作为数组包含在内,以实现接近于上述所需输出的效果。
我一直在寻找这个问题的答案,但是如果没有上述可视化效果,很难准确地描述我想要达到的结果。
答案 0 :(得分:1)
要使用id
并以逗号分隔所有group by
的列表,您应基于group_concat
进行选择:
SELECT GROUP_CONCAT(id) as ids, var1, var2 FROM pf_items GROUP BY var1, var2;
答案 1 :(得分:1)
要扩展Revo的答案,如果您使用的是MySQL 5.7或更高版本,则可以使用JSON_OBJECT
函数以预期的JSON格式直接输出数据:
SELECT JSON_OBJECT( 'var1',var1, 'var2',var2 ,'ids', GROUP_CONCAT(id)) AS JSON
FROM pf_items
GROUP BY var1, var2
返回
{"ids": "1,5", "var1": "a", "var2": "b"}
{"ids": "2,4", "var1": "a", "var2": "c"}
{"ids": "3", "var1": "c", "var2": "b"}