Приложение "Реакция и узел", конечная точка выглядит следующим образом =>
app.get("/query", (req, res) => {
con.query(
'SELECT (${req.query.filter}),
count("${req.query.filter}") AS count,
AVG(age) AS averageAge
from census_learn_sql
GROUP BY (${req.query.filter})
LIMIT ${req.query.limit}',
(err, result, fields) => {
err ? err : res.send(result);
}
);
});
когда req.query.filter - это строка без пробелов, например, "образование"... это работает. Когда я пытаюсь найти имя столбца, в котором есть пробелы, такие как "это имеет пробелы", этот запрос не работает. Как я могу это исправить?
Я думаю, что обратные тики должны помочь:
con.query(
'SELECT (\'${req.query.filter}\'),
count(\'${req.query.filter}\') AS count,
AVG(age) AS averageAge
from census_learn_sql
GROUP BY (\'${req.query.filter}\')
LIMIT ${req.query.limit}',
(err, result, fields) => {
err ? err : res.send(result);
}
);
И имхо, вам не нужны круглые скобки, а только когда у вас есть вызов функции агрегации, такой как COUNT
:
con.query(
'SELECT \'${req.query.filter}\',
count(\'${req.query.filter}\') AS count,
AVG(age) AS averageAge
from census_learn_sql
GROUP BY \'${req.query.filter}\'
LIMIT ${req.query.limit}',
(err, result, fields) => {
err ? err : res.send(result);
}
);
И я бы настоятельно рекомендовал избегать использования имен столбцов с пробелами.