如何使用 knex.select() select 类型数组列的列的第一个元素?
How to select the first element of a column of type array column using knex.select()?
我们能够select Postgres SQL 数据库中类型数组列的第一个元素。但是我无法使用 knex 进行查询。
我已经试过了。
database('items')
.select({icon: 'images[0]})
.then(data => {
res.send(data)
}
期待项目 table 的图像列的第一个元素。
尝试使用 first()
函数。它 returns 您的 table 中的第一行(无论 table 的排序顺序如何)。 .select('images')
会将返回的列限制为 images
.
knex
.select('images')
.table('items')
.first()
.then((data) => {
// first row of 'images' is an array.
// return only the first item in array.
res.send(data[0]);
})
https://www.postgresql.org/docs/current/arrays.html#ARRAYS-ACCESSING
这似乎在 knex 中为它构建了正确类型的查询(注意在 postgresql 中数组从索引 1 开始):
knex('items').select({icon: knex.raw('??[1]', ['images'])})
这是生成查询的 runkit 示例 https://runkit.com/embed/1apx76bh4u40
我们能够select Postgres SQL 数据库中类型数组列的第一个元素。但是我无法使用 knex 进行查询。
我已经试过了。
database('items')
.select({icon: 'images[0]})
.then(data => {
res.send(data)
}
期待项目 table 的图像列的第一个元素。
尝试使用 first()
函数。它 returns 您的 table 中的第一行(无论 table 的排序顺序如何)。 .select('images')
会将返回的列限制为 images
.
knex
.select('images')
.table('items')
.first()
.then((data) => {
// first row of 'images' is an array.
// return only the first item in array.
res.send(data[0]);
})
https://www.postgresql.org/docs/current/arrays.html#ARRAYS-ACCESSING
这似乎在 knex 中为它构建了正确类型的查询(注意在 postgresql 中数组从索引 1 开始):
knex('items').select({icon: knex.raw('??[1]', ['images'])})
这是生成查询的 runkit 示例 https://runkit.com/embed/1apx76bh4u40