【问题标题】:Inserting boolean value into MySQL with Python使用 Python 将布尔值插入 MySQL
【发布时间】:2011-11-01 15:19:18
【问题描述】:

我正在尝试向 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))

【问题讨论】:

    标签: python mysql mysql-python


    【解决方案1】:

    对于 Python 2.7 和 MySQLdb 包,它以这种方式为我工作。

    1. 对于 varchar 类型的列,使用 '%s'
    2. 对于或布尔值,数字仅使用%s%d%i
    INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)`
    

    【讨论】:

      【解决方案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】:

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

        您看到的行为是预期的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-15
          • 1970-01-01
          • 2010-10-10
          • 1970-01-01
          • 1970-01-01
          • 2018-12-07
          • 2011-08-28
          • 2011-11-11
          相关资源
          最近更新 更多