Как выбрать много строк из словаря (выполнить много выбора)

Я использую Python и его модуль MySQLdb, возможно ли сделать "selectmany"-подобный из кортежа / словаря / списка в условии

что-то вроде этого:

cursor.executemany("""SELECT * FROM customers WHERE name= %(name)s""",[d.__dict__ for d in data])

selected_rows = cursor.fecthall()

выполнение удаления / обновления / вставки работает нормально с этим методом:

cursor.executemany("""UPDATE customers SET item = %(item)s WHERE name = %(name)s""",[d.__dict__ for d in data])

3 ответа

Решение

Вы можете использовать синтаксис "WHERE IN" sql, например,

SELECT * FROM customers WHERE name IN ('john', 'mary', 'jane');

Я не использовал executemany метода пока нет, но мне интересно, предназначен ли он для SELECT. Как насчет

... where name in (...)

вместо

... where name = ...

и вставив кортеж, содержащий ключи вашего data словари?

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

Другие вопросы по тегам