2

我正在尝试将一些值插入到 MySQL 表中,前两个值是字符串,最后一个是布尔值。我的问题是,无论我做什么,我似乎都无法让 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))
4

3 回答 3

3

请参阅MySQL 文档。“布尔”数据类型将只是 0 或 1。

您看到的行为是预期的。

于 2011-08-23T05:27:34.260 回答
3

对于 Python 2.7 和 MySQLdb 包,它以这种方式对我有用。

  1. 对于 varchar 类型的列,请使用'%s'
  2. 对于或布尔值,数字仅使用%s, %d, %i
INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)`
于 2015-09-03T11:27:19.117 回答
2

如果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),))
于 2019-06-18T17:54:04.177 回答