javascript — ГДЕ col IN Запрос с пустым массивом в качестве параметра

WHERE col IN Запрос с пустым массивом в качестве параметра

Библиотека pg-обещание дает вам полную свободу в создании любого SQL, который вы хотите, она не проверяет и не контролирует его, так как это не ORM.

CSV Filter является универсальным, его можно использовать в различных контекстах для генерации запросов. Поэтому, когда вы используете его специально для IN ($1:csv) , он не знает об этом и снова генерирует общий вывод.

Согласно комментариям, которые я оставил в этом выпуске , правильный подход — проверить, есть ли у вас какие-либо данные в вашем массиве, а если нет — вообще не выполнять запрос. Во-первых, запрос будет недействительным, и даже если вы исправите его с помощью некоторой пустой логики, это означает, что он не будет генерировать никакого результата, и выполнение такого запроса становится пустой тратой IO.

 let result = []; if (data.length) { result = await db.any('SELECT * FROM table WHERE id IN ($1:csv)', [data]); } /* else: do nothing */ 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector