将数组放在WHERE语句中 - MySQLdb,Python

时间:2016-11-17 23:45:47

标签: python mysql

我有一个名为bizIds的变量,它根据以前的查询分配给一个数组:

bizIds = data[i]

我正在尝试在我的数据库中插入数据,其中特定的业务ID在表中。

到目前为止,这是我的代码:

        bizIds = data[i]
        #do some stuff

        cursor = db.cursor()                

        ##Inserting into Datebase
        writeIt = """INSERT INTO business (`Industry`,`Company Form`) VALUES (%s, %s) WHERE `Business ID` = %s""" 

        ##Executing the query
        cursor.execute(writeIt, (Industry.text, CompanyForm.text, bizIds))
        db.commit()

当我运行程序时,收到错误消息:(1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near \'WHERE Business ID = ("\'0986132\'",)\' at line 1')因此它在括号中显示正确的业务ID,但它不会插入记录。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚Industry.text和CompanyForm.text是什么,但我认为它们来自你脚本的其他部分。

我认为您需要使用UPDATE而不是INSERT INTO。

writeIt = """UPDATE business SET `Industry` = %s, `Company Form` = %s WHERE `Business ID` = %s"""

INSERT INTO添加记录,不支持WHERE子句。这是原始错误的来源。您似乎想要更新已存在的记录。