Мне нужно повторить следующее в Sequelize. К сожалению, я не смог воспроизвести его полностью и недостаточно, чтобы заставить его работать. Мне нужно ORDER BY FIELD
.
Рабочий запрос
SELECT * FROM счетов-фактур ORDER BY FIELD (invoice_status_key, 'unpaid', 'overduy', 'open ',' платный ') ASC;
Вот код, который у меня есть, он близок, но не точен и не работает:
Invoice.findAll ({order: [[sequelize.fn ('FIELD', ['invoice_status_key', 'open', 'unpaid', 'overdue', 'paid']), 'AS C']], logging: console.log});
Этот код производит следующий запрос:
SELECT id
, company_id
, customer_id
, job_id
, invoice_status_key
, identifier
, subtotal
, tax
, shipping
, total
, summary
, due_at
, paid_at
, created_at
, updated_at
ОТ invoices
КАК Invoice
ЗАКАЗ ПО ПОЛЕ ('invoice_status_key' , «открыто», «не оплачено», «просрочено», «оплачено») ASC;
Предположительно, что неправильно, то поле invoice_status_key
заключено в кавычку внутри функции, в то время как функция ожидает его НЕ цитироваться. Я пробовал множество способов, и это самый близкий из всех, что я получил, но, к сожалению, он не дает результатов в правильном порядке.
Любая помощь приветствуется.