用Python在MySQL中插入布尔值

2024-03-29 05:10:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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))

Tags: 字符串代码nameexecutestringconnectmysqltable
3条回答

如果值为真或假 在python中,可以使用int()

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

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

请参阅MySQL docs。“布尔”数据类型将仅为0或1。

你看到的行为是意料之中的。

对于Python2.7和MySQLdb包,它以这种方式为我工作。对于varchar类型的列,使用%s作为布尔值,数字只使用%s%d%i

INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)

相关问题 更多 >