我目前有以下查询,它获取具有 id = 某个值的所有内容,但我需要它来获取仅具有其列(称为 Uid)值的项目在表中出现多次。

基本上我需要从以下查询的结果中过滤出具有唯一 Uid 列值的项目

models.table.findAll({
    where:{
        id: req.params.id
    }
})

最佳答案

所以我相信你正在寻找的 SQL 查询是

SELECT id, uid, count(*) FROM table
WHERE id = :id
GROUP BY id, uid
HAVING count(uid) > 1;

在 Sequelize 中,它将是:
models.table.findAll({
    where: { id: req.params.id },
    group: ['id', 'uid'],
    having: [sequelize.literal('count(?) > ?)', 'uid', 1]
})

不完全确定这是否是 Sequelize 的正确语法。另请查看 sequelize.fn()sequelize.col()

关于mysql - 将 findAll 序列化,其中列值与表中的至少一个其他项目相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47985544/

10-11 22:22
查看更多