我不知道Knex是否完全能够支持这种功能。我猜是这样,我得到的ER_INVALID_GROUP_FUNC_USE
错误意味着语法(所有逗号和引号等)是正确的,但是不支持直接在另一个concat函数中使用。是否有有效的方法来生成这种返回的对象?
knex('a').select('a.*',knex.raw(
`CONCAT("{", GROUP_CONCAT(DISTINCT '"',b.b_id,'"',':','[',
'"',b.b_text,'"',",",
CONCAT("{", GROUP_CONCAT(DISTINCT
'"',c.c_id,'"',':','"',c.c_text,'"'),"}"),
"]"),"}")`
))
编辑:为清楚起见,这就是我希望返回的对象寻找简单的JSON解析的方式:
object = [{
a_id:'id',
a_text:'text',
b_list:{
b_id:[
b_text,
{c_id:c_text}
]
}
}]
获取A表,然后返回.then()=>来获取b_list是否更简单(尽管我宁愿将其作为{}对象而不是[]数组)并将Cs连接到它?我实际上是sql编程的新手,所以真的不了解一种方法与另一种方法之间的取舍-在后续的.then()=>函数中对数据库进行多次调用是否是一个坏主意...在某些情况下,它是一个坏主意。似乎不可避免?