Как я могу использовать список переменных для создания строки запроса SQL?

1

Я попытался использовать код ниже, но у меня все еще есть "вокруг каждого элемента в строке".

l = ['a','b','c']
query = "SELECT " + str(l).strip('[,]') + " FROM table"

возвращается

"SELECT 'a', 'b', 'c' FROM table"

Как я могу это исправить?

Теги:
string

2 ответа

2
Лучший ответ

Использование str.join:

query = "SELECT " + ", ".join(l) + " FROM table"

print(query)

"SELECT a, b, c FROM table"

Как указывалось, формирование SQL-запросов из строк должно быть последним средством.

  • 0
    Это только безопасно , если вы уверены в том, что l на самом деле содержит только допустимые имена столбцов. (Кроме того, он возвращает ту же строку, которую уже имеет OP).
  • 0
    @chepner, да. Мы делаем несколько предположений, например, table существует, список столбцов отражает допустимые поля table .
0

вы можете использовать join: -

l = ['a','b','c']
query = "SELECT '" + l.join('') + "' FROM table"

print(query)

"SELECT 'abc' FROM table"

если вы хотите, чтобы они присоединились, вы можете использовать вышеуказанный код.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню