Python MySQL executemany в предложении WHERE

Я хочу выбрать значения из MySQL следующим образом

do_not_select = [1,2,3] cursor = database.cursor() cursor.executemany("""SELECT * FROM table_a WHERE id != %s""",(do_not_select)) data = cursor.fetchall() 

Запрос возвращает все значения в db отдельно от первого id (1). Я не хочу, чтобы он выбирал id 1,2 или 3.

Возможно ли это с помощью команды executemany ..?

One Solution collect form web for “Python MySQL executemany в предложении WHERE”

NOT IN :

 do_not_select = [1, 2, 3] cursor.execute("""SELECT * FROM table_a WHERE id NOT IN ({}, {}, {})""".format(do_not_select[0], do_not_select[1], do_not_select[2])) data.cursor.fetchall() 

Я подозреваю (хотя я не тестировал это), что это будет работать лучше. Id do_not_select был кортежем, тогда я думаю, вы могли бы просто запустить его прямо в ваш запрос:

 do_not_select = (1, 2, 3) cursor.execute("""SELECT * FROM table_a WHERE id NOT IN {}""".format(do_not_select)) data.cursor.fetchall() 

Мне было бы интересно узнать, работает ли это – если вы попробуете, пожалуйста, дайте мне знать 🙂

  • MySQL и заблокировать таблицу, прочитать, а затем усечь
  • MySQL: получить имя столбца или псевдоним из запроса
  • IndexError: индекс tuple вне диапазона --- Python
  • Нет модуля с именем MySQLdb, даже если MySQL-python установлен?
  • Ошибка: скрипт установки завершен с ошибкой: команда 'gcc' не удалась с статусом выхода 1
  • получить необработанное десятичное значение из запроса mysqldb
  • Python MySQLDB: получить результат fetchall в списке
  • django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb:
  • Python - лучший язык программирования в мире.