Как создать запрос "SELECT id, категория IS NULL и категория IN (1, 2) КАК my_category FROM my_table" в knex - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь построить сложный запрос, используя knex. js, где в части выбора я хочу выбрать некоторые поля как логические, если они имеют одно из указанных значений c. Упрощенная версия самого запроса такая же, как и в заголовке вопроса:

SELECT 
    "ID", 
    "Category" IS NOT NULL AND "Category" IN (1, 2) AS "My_Category" 
FROM "My_Table";

Как я могу написать его в knex. js? Что я знаю, так это:

knex.select({ID: 'My_Table.ID', My_Category: 'My_Table.Category'})
    .from('My_Table);

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете использовать необработанные запросы:

knex.raw('Select ID,Category IS NOT NULL AND Category IN (1, 2) AS My_Category from My_Table where ID = ?', [1]).then(function(resp) { ... });

или необработанные выражения:

knex('My_Table')
  .select(knex.raw('ID,Category IS NOT NULL AND Category IN (1, 2) AS My_Category'))
  .where(knex.raw(1))
  .orWhere(knex.raw('ID = ?', [1]))

См. По адресу: http://knexjs.org/#Raw -выражения или: http://knexjs.org/#Raw -Queries

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...