【发布时间】:2020-03-13 14:26:29
【问题描述】:
我需要在 Sequelize 中复制以下内容。不幸的是,我无法完全复制它,也不足以让它真正发挥作用。我需要ORDER BY FIELD。
工作查询
SELECT * FROM invoices ORDER BY FIELD(invoice_status_key, 'unpaid', '逾期'、'未结'、'已付')ASC;
这是我拥有的接近但不准确且无法正常工作的代码:
Invoice.findAll({ order: [ [sequelize.fn('FIELD', ['invoice_status_key', 'open', 'unpaid', 'overdue', 'paid']), 'ASC'] ],日志记录:console.log });
此代码产生以下查询:
选择
id、company_id、customer_id、job_id、invoice_status_key,identifier,subtotal,tax,shipping,total,summary,due_at,paid_at,created_at,updated_atFROMinvoicesASInvoiceORDER BY FIELD('invoice_status_key', 'open', 'unpaid', '逾期', 'paid') ASC;
可能是错误的字段invoice_status_key 在函数内部被引用,而函数期望它不被引用。我尝试了很多方法,这是我得到的最接近的方法,但不幸的是它没有按正确的顺序产生结果。
感谢任何帮助。
【问题讨论】:
标签: mysql sql node.js sequelize.js