WhatIsHTML
@WhatIsHTML
HTML программист

SELECT NOT IN ошибка синтаксиса?

Использую pg-promise для nodejs .
Нужно сделать выборку по условию NOT IN. В примере параметр который приходит- массив.
https://github.com/vitaly-t/pg-promise/wiki/Learn-...
У меня это объект вида
let obj = {
    limit: limit,
    list: list // массив здесь
  };

Сам запрос:
return db.query(`
            SELECT *
            FROM table WHERE 
            id NOT IN (${obj.list}:csv)
            LIMIT ${obj.limit}
        `);

Вылетает ошибка
{ error: ошибка синтаксиса (примерное положение: ":")

1. Что делаю не так?
2. Как правильно подставить параметры в запрос, чтобы все потенциально опасные символы эскейпились? Я правильно подставил или нет?
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
0xD34F
@0xD34F
Что делаю не так?

Пытаетесь подставлять значения посредством шаблонных строк вместо того, чтобы воспользоваться средствами форматирования, которые предоставляет pg-promise (точнее - смешиваете эти подходы).

Как правильно подставить параметры в запрос

Да как-то так, например:

db.query(`
  SELECT *
  FROM table
  WHERE id NOT IN ($(list:csv))
  LIMIT $(limit)
`, obj)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы