我是SqlAlchemy的新人,我正在寻找类似的东西:
表格
CATEGORY VALUE ORDER
cat_1 val_11 1
cat_1 val_12 2
cat_2 val_21 1
cat_1 val_13 3
cat_3 val_31 1
convenint检索结果:
{"cat_1": (val11, val12, val13), "cat_2": (val_21), "cat_3": (val_31)}
我试图避免使用不同的类别编写查询,然后按类别迭代类别列表查询值
答案 0 :(得分:1)
MySql没有数组类型(与大多数其他RDBMS系统不同),因此无法将列聚合为数组。
在mysql中最接近的事情是使用group_concat函数,该函数返回逗号分隔列表(或者您可以指定自定义分隔符)
from sqlalchemy import func
q = session.query(
Table.category,
func.group_concat(Table.value).label('group_values')
).group_by(Table.category).all()
然后,迭代结果集&将字符串拆分为python中的列表。