#sql #postgresql #where-clause
Вопрос:
если я удалю параметр «столбец» из функции и жестко закодирую имя столбца в предложении where, этот запрос будет работать.
static async findByColumn(column, searchTerm) {
const term = `%${searchTerm}%`;
const { rows } = await pool.query(
`SELECT * FROM characters
WHERE $1
ILIKE $2`,
[column, term]
);
if(!rows[0]) return null;
else return rows.map(character => new Character(character));
}
Комментарии:
1. Вы не можете передавать имена столбцов или таблиц в качестве параметров — независимо от вашего языка программирования. Вам необходимо динамически построить SQL с использованием конкатенации строк перед его запуском.
2. хорошо, круто, спасибо! Да, в итоге я просто вставил его в качестве шаблона литерала ${столбец}, и это сработало!