/* Code for Pagination */
let limit = 4; // number of records per page
let offset = 0;
let countallCompanies = 1000;
let page = req.body.page; // 1 by default page number
let order_by = req.body.order_by; // id by default
let order_by_ASC_DESC = req.body.order_by_ASC_DESC; // ASC by default
let pages = Math.ceil(countallCompanies.count / limit);
offset = limit * (page - 1);
/* End code for Pagination */
[err, companies] = await to(Company.findAll({
where: { company_name: { like: '%'+ req.body.q +'%' } },
limit: limit,
offset: offset,
order: [[order_by, order_by_ASC_DESC]]
}));
Я ожидаю, что sequelize сгенерирует этот запрос:
SELECT * FROM 'Companies' AS 'Company' WHERE company_name LIKE '%aa%' ORDER BY 'Company'.'id' ASC LIMIT 0, 4
Вместо этого он генерирует этот запрос:
SELECT * FROM 'Companies' AS 'Company' ORDER BY 'Company'.'id' ASC LIMIT 0, 4
Условие WHERE
не добавляется в мой запрос, хотя другие предложения похожи на ORDER BY
, LIMIT
и т.д. Я пробовал использовать как like
и $like
, но ни один из них не сработал. Если я добавлю where: { id: 53 }
то WHERE
появится.
Добавить const Op = Sequelize.Op;
в начале файла.
Есть два способа использовать лайк. $like: [Op.like]
.
Также попробуйте с жестко закодированным значением, чтобы убедиться, что ваши данные в порядке.