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() 

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

  • pip install MySQL-python не работает на ubuntu 14.04, ошибка: команда «x86_64-linux-gnu-gcc» не удалась с статусом выхода 1
  • Python MySQLdb - Ошибка 1045: доступ запрещен для пользователя
  • Mac OSX: пакеты python не удалось создать из-за проблем с gcc
  • Python, Brew и MySQLdb
  • Установка определенных версий пакета с помощью pip
  • Python, MySQLdb и экранирование имен таблиц?
  • Как проверить, была ли вставка успешной с MySQLdb в Python?
  • mysql-python устанавливает фатальную ошибку
  • Python - лучший язык программирования в мире.