gpt4 book ai didi

mysql - 将自定义字段与表分开

转载 作者:行者123 更新时间:2023-11-29 07:36:01 26 4
gpt4 key购买 nike

我正在尝试进行 IN 查询,但我正在查询的字段不是表的元素。它是硬编码的。

await models.users.findOne({
where: {
id: 12,
2: {$in: [1, 2, 3]}
}
});

问题是,sequelize 将表名放在我的字段的开头。

WHERE `users`.`2` IN (1, 2, 3) 

由于我的表中没有字段 2,它会抛出“Unknown column 'users.2' in where clause”

实际上,这就是我需要的并且在原生 sql 中工作:

WHERE 2 IN (1, 2, 3) 

更新

为了更好地解释它,我正在编写整个 SQL:

    SELECT count(`users`.`id`) AS `count`
FROM `users` AS `users`
INNER JOIN `payment_log` AS `succeed_payment`
ON `users`.`id` = `succeed_payment`.`user_id` AND `succeed_payment`.`state` = 'success'
LEFT OUTER JOIN `user_profile` AS `profile` ON `users`.`id` = `profile`.`user_id` AND `profile`.`state` = 'submitted'
WHERE
`users`.`country` = 'BLR'
AND (`users`.`kyc_state` IN ('prepared', 'applicant_created', 'consider') OR `users`.`kyc_state` IS NULL)
GROUP BY `users`.`id`
HAVING
1 IN ((SELECT tag_id
FROM user_tags UT
WHERE users.id = UT.user_id)) AND
2 IN ((SELECT tag_id
FROM user_tags UT
WHERE users.id = UT.user_id));

1 和 2 来自 URL 查询。我正在检查客户是否有这些标签。

不幸的是,sequelize 在我的查询中添加了反引号并将其返回到这里:

  HAVING
`1` IN ((SELECT tag_id
FROM user_tags UT
WHERE users.id = UT.user_id)) AND
`2` IN ((SELECT tag_id
FROM user_tags UT
WHERE users.id = UT.user_id));

在这种情况下,我会收到“未知的第 1 列”错误

最佳答案

您可以通过以下方式实现:

where : {
'$2$' : {$in: [1, 2, 3]}
}

关于mysql - 将自定义字段与表分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816573/

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