
很遗憾,您不能在
WHERe或
HAVINg语句中使用别名字段,而只能在中使用
ORDERBY。您必须在
WHERe子句中重复您的语句,而不要使用别名(就像在Where语句中的SQL Usealias中所说明的那样)。
而且,由于
distance在
where和
order属性中使用字段时,Sequelize会自动将其视为
myModel而不是your的字段
alias,因此会发生您获得的错误,因此您需要按字面意义编写它,因此不会将其视为表的列选择。
myModel.findAll({ attributes: { include: [[`(3959 * acos(cos(radians(${user-latitude})) * cos(radians(latitude)) * cos(radians(longitude) - radians(${user-longitude})) + sin(radians(${user-latitude})) * sin(radians(latitude))))`, 'distance']] }, where: sequelize.where( sequelize.literal(`(3959 * acos(cos(radians(${user-latitude})) * cos(radians(latitude)) * cos(radians(longitude) - radians(${user-longitude})) + sin(radians(${user-latitude})) * sin(radians(latitude))))`), '<=', 25 ), order: 'distance ASC', limit: 10, offset: 0});sequelize在这种情况下是您的Sequelize实例。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)