我在MySQL 8.0上使用SQLAlchemy。
我正在尝试编写一个在SQL表达式语言上使用JSON_OBJECTAGG
函数的查询。
由于它是MySQL中的预定义函数,所以我想知道是否存在实现此目的的规范方法。
JSON_OBJECTAGG
函数组成查询的推荐方法是什么?答案 0 :(得分:0)
使用func
可以调用什么SQL函数没有限制 1 。给定MySQL documentation中的示例:
mysql> SELECT o_id, attribute, value FROM t3; +------+-----------+--------+ | o_id | attribute | value | +------+-----------+--------+ | 2 | color | red | | 2 | fabric | silk | | 3 | color | green | | 3 | shape | square | +------+-----------+--------+ 4 rows in set (0.00 sec)
查询:
SELECT o_id, JSON_OBJECTAGG(attribute, value) FROM t3 GROUP BY o_id;
在SQLAlchemy SQL Expression Language中将表示为:
select([t3.c.o_id, func.json_objectagg(t3.c.attribute, t3.c.value)]).\
group_by(t3.c.o_id)
1 实际上有一些限制。例如,func
不能轻松地使用命名符号来生成函数调用。