gpt4 book ai didi

javascript - 在 Adonis Lucid 子查询上选择 JSON 字段键

转载 作者:行者123 更新时间:2023-12-03 00:44:58 27 4
gpt4 key购买 nike

我有两个简单的清晰模型,称为Parent(表父级)和Child(表子级)。子表有一个 JSON 字段,我们称之为 jsoncolumn

我的父模型与模型子模型具有belongsToMany 关系。

children() {
return this.belongsToMany('App/Models/Child').pivotTable('parent_child');
}

我想从各个父项中获取父项的值,以及键 key 处的字段 jsoncolumn 中包含的值;为此,我想使用 PostgreSQL 运算符 ->。使用 Adonis Lucid 语法,它给出以下代码:

Parent.query().select('*')
.with('children', builder => {
builder.select(Database.raw("jsoncolumn->'key' AS foo"));
}).fetch();

问题,下面的代码不起作用。即使在 Database.raw 子句中,运算符被引用...所以生成的选择是:

SELECT "children"."jsoncolumn->'key'"

请注意,它也不允许使用任何功能。实际上,任何不是列名的名称都不起作用。

执行此操作的正确语法是什么?

最佳答案

要在 MySQL 服务器上查询 JSON 数据类型,您需要按以下方式执行

SELECT columnOne, jsonColumn->'$.key' as Data FROM TableName;

我的意思是你的语法不正确,因为你在 builder.select(Database.raw("jsoncolumn->'$.key' AS foo"之前没有使用 $. 符号) ));

为什么?

您使用的简短语法需要它,正如我之前的示例向您展示的那样

关于javascript - 在 Adonis Lucid 子查询上选择 JSON 字段键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com