是否可以使用列名作为键自动生成一个json对象?我有一个包含许多列的表,我需要将其转储到一个json对象中。我知道我可以使用JSON_OBJECT函数来完成此操作,但我一直在寻找一种更简洁的语法,使我不必指定所有列的名称就可以完成此操作
SELECT JSON_OBJECT("col_a", m.col_a, "col_b", m.col_b, "col_c", m.col_c, ...)
FROM largetable AS m
像这样的东西?
SELECT JSON_OBJECT(m.*)
FROM largetable AS m
我使用的是MariaDB版本10.8.2
2条答案
按热度按时间qpgpyjmq1#
Json对象在其他语言中也有意义 比如javascript,C#...在大多数语言中,有很多库可以将MariaDB查询的结果转换为json对象的列表。另外,一个好的做法是在应用程序中执行查询和处理结果时,使数据库引擎尽可能少地工作。
ffx8fchx2#
当然这是不可能的,因为解析器不会接受JSON_OBJECT函数的奇数个参数。
要在纯SQL中执行此操作,您不能在单个语句中执行此操作,因为您需要首先从information_schema中检索列名:
在应用程序中转换结果要容易得多,速度也快得多,例如在Python中: