我有一个名为Staff的续订模型.其中一个工作人员列称为Locations,它保存此工作人员可用的所有位置的ID.我想创建一个使用位置ID的查询,以使该位置的所有员工都处于活动状态.我如何使用ORM做到这一点呢?

推荐答案

假设我正确理解了您的问题,并且您的位置栏包含CSV数据,则您需要使用FIND_IN_SET()-

Staff.findAll({
    where: sequelize.where(sequelize.fn('FIND_IN_SET', locationId, sequelize.col('locations')), {[Op.gt]: 0})
})

更好的 Select 是标准化您的数据,因为该查询是非SARGable的.

Mysql相关问答推荐

MySQL在带有特定属性值上的对象的数组的杨森对象中搜索

同一类型对象之间的多对多关系

如何让Docker MySQL使用Unicode(utf-8)和初始化脚本?

MySQL逻辑全部

版本升级到5.0.0后在QueryDSL中使用Enum时出错

根据 Power Query 中的条件替换值

如何在 MySQL 中使用从 SELECT IF 返回的布尔值

0000-00-00 00:00:00 表中的日期设置为 NOT NULL

如何根据 R 中的价格范围将数据从一列复制到新列?

为什么以及如何将 Django filter-by BooleanField 查询转换为 SQL WHERE 或 WHERE NOT 而不是 1/0?

根据单个日期字段获取范围/天数

仅当其他行相等时才 Select 行值

MySQL 根据另一列中的值更改空值

如何使用nodejs从mysql数据库中获取最新的10条记录?

授予用户对 MySQL 中有限数量表的访问权限

在 MySQL Workbench EER 图中的多个列上创建唯一约束

如何使用 SQL 数据库中的经纬度查找最近的位置?

使用 Java 通过 SSH 连接到远程 MySQL 数据库

来自 MySQL 中多个表的 COUNT(*)

Mysql 错误:try 转储表空间时,指定为定义者的用户 ('mysql.infoschema'@'localhost') 不存在'