gpt4 book ai didi

sql - Sequelize 中的唯一值

转载 作者:行者123 更新时间:2023-12-03 22:22:54 26 4
gpt4 key购买 nike

我为 Node.js 使用 Sequelize ORM。我需要在某些列中获取具有唯一值的行。示例表:

id | name | group
-----------------
1 | One | 2
2 | Two | 1
3 | Three| 2
4 | Four | 3
5 | Five | 1

查询列 group 和结果:
id | name | group
-----------------
1 | One | 2
2 | Two | 1
4 | Four | 3

第一行、第二行和第四行是第一个拥有唯一 group 值的行。如何在 Sequelize 中制作它?

最佳答案

Sequelize 原始查询是获取所需行的一种方法:

/*
var sql =
SELECT r.id,
r.name,
r.groupnum
FROM s04.row r
JOIN
(SELECT min(id) AS id,
groupnum
FROM s04.row
GROUP BY groupnum) s
ON r.id = s.id
*/
return sq.query(sql, { type: sq.QueryTypes.SELECT});

生成的 promise 将解析为 JSON 数组:
[
{
"id": 1,
"name": "One",
"groupnum": 2
}
...
]

如果您需要将这些行作为实例处理,您可以在数组的每个元素上调用 build:
Model.build({ /* attributes-hash */ }, { isNewRecord: false })

有关示例,请参见 here。如果我找到一种通过 Sequelize 函数调用( aggregatefind* 等)来做到这一点的方法,我也会把它作为单独的答案发布在这里。

关于sql - Sequelize 中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638223/

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