2015-05-26 2 views
1

У меня есть куча имен столбцов в списке Python. Теперь мне нужно использовать этот список в качестве имен столбцов в операторе SELECT. Как я могу это сделать?Использовать список Python в SQL-запросе для имен столбцов

pythonlist = ['one', 'two', 'three'] 

SELECT pythonlist FROM data; 

До сих пор у меня есть:

sql = '''SELECT %s FROM data WHERE name = %s INTO OUTFILE filename''' 

cur.execute(sql,(pythonlist,name)) 

ответ

1

Вы не можете передать список столбцов, чтобы выбрать в качестве параметра cur.execute. Это должно быть частью вашего выражения SQL, что-то вроде:

sql = "SELECT " + ",".join(pythonlist) + " FROM data WHERE name = %s INTO OUTFILE filename" 
cur.execute(sql, (name,)) 

Одна вещь, чтобы быть в курсе, что заполнитель для значения параметра в SQL зависит от базы данных. Если %s не работает, попробуйте использовать ? или :1. См. https://www.python.org/dev/peps/pep-0249/#paramstyle для более подробной информации.

+0

Я не знал, что '(name)' отличается от '(name,)'. Дополнительная запятая делает его кортежем, который выполняет потребности. Благодарю. – NeoJi

Смежные вопросы