#python #mysql-python
#python #mysql-python
Вопрос:
Я пытаюсь сделать следующее :
query = "SELECT * FROM table ORDER BY %s %s"
parameters = ['avg', 'DESC']
Но параметры отображаются неправильно.
SELECT * FROM table ORDER BY 'avg' 'DESC'
Вместо
SELECT * FROM table ORDER BY avg DESC
Вы знаете почему?
Ответ №1:
Используя это:
"SELECT * FROM table ORDER BY %s %s" % ('avg', 'DESC')
должно сработать.
Комментарии:
1. Хотя в зависимости от того, откуда берутся эти значения, у вас может возникнуть риск внедрения
2. Для этих параметров я могу предотвратить внедрение, но не для других, которые использовались ранее. Используя конкатенацию, я должен быть в состоянии сделать это раньше.
3. Это другая история (программная проблема), и вопрос был техническим. Но я согласен с вами 🙂
Ответ №2:
Вы не можете использовать параметры для динамического указания имен полей. Они указывают только значения.