Мне нравится Заявление не работает в sequelize

0

Что делаешь?

/* 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 появится.

Теги:
sequelize.js
sql-like
like

1 ответ

1
Лучший ответ

Добавить const Op = Sequelize.Op; в начале файла.

Есть два способа использовать лайк. $like: [Op.like].

Также попробуйте с жестко закодированным значением, чтобы убедиться, что ваши данные в порядке.

  • 0
    Я уже попробовал этот вариант, но не работает :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню