Вставка логического значения в MySQL с помощью Python - PullRequest
2 голосов
/ 23 августа 2011

Я пытаюсь вставить некоторые значения в таблицу MySQL, первые 2 значения являются строковыми, а последнее - логическим значением. Моя проблема в том, что я, что бы я ни делал, не могу заставить python / MySQL распознавать логическое значение как таковое и вставлять его. Из того, что я могу сказать, Python правильно делает последнее значение логическим, но MySQL не видит его таким. Каждый раз это просто по умолчанию 0 в таблице. Ниже приведен некоторый псевдокод, в значительной степени то, что я пытаюсь сделать.

conn = MySQLdb.connect(...)
c = conn.cursor()
c.execute("INSERT INTO table (name, string, bool) VALUES (%s,%s,%s,(aName,aString,boolVal))

Ответы [ 3 ]

3 голосов
/ 03 сентября 2015

Для пакета Python 2.7 и MySQLdb у меня так работает. Для столбцов типа varchar используйте %s для логического, число используйте просто %s, %d, %i.

INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)
1 голос
/ 18 июня 2019

если в Python значение True или False, вы можете использовать int ()

>>> a = True
>>> int(a)
1
>>>

conn = MySQLdb.connect(...)
c = conn.cursor()
c.execute("INSERT INTO table (bool) VALUES (%s)",( int(boolVal),))
1 голос
/ 23 августа 2011

См. MySQL документы . Тип данных "Boolean" будет 0 или 1.

Ожидаемое вами поведение.

...