如何在sequelize中选择案例查询?
Posted
技术标签:
【中文标题】如何在sequelize中选择案例查询?【英文标题】:How to select case query in sequelize? 【发布时间】:2017-03-20 15:14:42 【问题描述】:我有一个 sql 查询:
SELECT field1, field2,
CASE
WHEN field1=1 THEN 'a'
ELSE 'b'
END
AS field3
FROM test
我想用 sequelizejs
来实现它,
const params =
attributes: //DO SELECT CASE,
;
yield Model.findAll(params);
谁能帮帮我?谢谢。
【问题讨论】:
【参考方案1】:对于仍在寻找这个答案的人
Model.findAll(
attributes: [[models.sequelize.literal('CASE WHEN "field1" = true THEN 55 ELSE 23 END'), 'field3']]
或
Model.findAll(
attributes: include: [[models.sequelize.literal('CASE WHEN "field1" = true THEN 55 ELSE 23 END'), 'field3']]
所以在我的示例中,当 field1 为 true 时,它将返回 55,否则返回 23。这将生成类似的查询
SELECT CASE WHEN "field1" THEN 55 ELSE 23 END AS "field3" FROM "models"
有关更多信息,您可以查看文档 http://docs.sequelizejs.com/en/latest/docs/querying/#attributes
【讨论】:
以上是关于如何在sequelize中选择案例查询?的主要内容,如果未能解决你的问题,请参考以下文章
如何将查询逻辑添加到基于 graphql-sequelize 的设置?