使用Python将布尔值插入MySQL

3 投票
3 回答
20636 浏览
提问于 2025-04-17 00:09

我正在尝试将一些值插入到一个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))

3 个回答

2

如果这个值是True或者False,在Python中你可以使用int()这个函数。

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

conn = MySQLdb.connect(...)
c = conn.cursor()
c.execute("INSERT INTO table (bool) VALUES (%s)",( int(boolVal),))
3

对于Python 2.7和MySQLdb这个包,我是这样使用的。

  1. 如果是varchar类型的列,使用 '%s'
  2. 如果是布尔值、数字,直接用 %s%d%i
INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)`
3

可以查看一下MySQL的文档。在这里,“布尔”数据类型其实就是0或1。

你看到的这种情况是正常的。

撰写回答