Как выбрать много строк из словаря (выполнить много выбора) - PullRequest
1 голос
/ 14 декабря 2009

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

как то так:

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 ]

3 голосов
/ 14 декабря 2009

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

SELECT * FROM customers WHERE name IN ('john', 'mary', 'jane');
2 голосов
/ 14 декабря 2009

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

... where name in (...)

вместо

... where name = ...

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

0 голосов
/ 09 августа 2015

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

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