如何在 SQLAlchemy 的 SQL 表达式语言中使用 JSON_OBJECTAGG 编写 MySQL 查询?
How do you write MySQL query using JSON_OBJECTAGG on SQLAlchemy's SQL Expression Language?
我在 MySQL 8.0 上使用 SQLAlchemy。
我正在尝试编写一个在 SQL 表达式语言上使用 JSON_OBJECTAGG
函数的查询。
由于它是 MySQL 中的预定义函数,我想知道是否有实现此目的的规范方法。
问题
- 在 SQL 表达式语言上使用
JSON_OBJECTAGG
函数编写查询的推荐方法是什么?
没有限制1 可以使用 func
. Given the example from MySQL documentation:
调用哪些 SQL 函数
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
无法使用命名符号轻松生成函数调用。
我在 MySQL 8.0 上使用 SQLAlchemy。
我正在尝试编写一个在 SQL 表达式语言上使用 JSON_OBJECTAGG
函数的查询。
由于它是 MySQL 中的预定义函数,我想知道是否有实现此目的的规范方法。
问题
- 在 SQL 表达式语言上使用
JSON_OBJECTAGG
函数编写查询的推荐方法是什么?
没有限制1 可以使用 func
. Given the example from 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
无法使用命名符号轻松生成函数调用。