通过Python运行SQL命令

时间:2017-04-13 02:18:37

标签: python mysql

我很难将这个SQL查询写入Python脚本。

所有变量都存储在Python中。我需要SQL语句来传递我的python变量,然后执行查询。

SQL语句应该在数据库中查询col1,col2,col3以查找' this_string',然后使用string1,string2和string3更新field1,field2和field3。

但我无法弄清楚......

<TextBox Text="{Binding FirstName, Mode=TwoWay}" />

我试过这个

mystring = 'this_string'
string1 = 'test1'
string2 = 'test2'
string3 = 'test3'

UPDATE databaseb.name SET field1 = string1, field2 = string2, field3 = string3 WHERE CONCAT_WS('', column1,column2,column3) LIKE '%this_string%'

2 个答案:

答案 0 :(得分:0)

你得到的错误是什么?如果是语法错误,那是因为您没有用引号(​​")包围UPDATE命令。

我的意思是:

x.execute("UPDATE databaseb.name SET field1 = string1, field2 = string2, field3 = string3 WHERE CONCAT_WS('', column1,column2,column3) LIKE '%this_string%'")

请记住,x.execure是一个接收字符串对象作为输入的函数。该字符串应指定要执行的SQL命令,但它仍然是一个字符串。

答案 1 :(得分:0)

查询应该在引号中,参数化你的sql是一个好习惯。它可能看起来像这样:

x.execute("""UPDATE databaseb.name SET field1 = %s, field2 = %s, field3 = %s WHERE CONCAT_WS('', column1,column2,column3) LIKE %s""",(string1, string2, string3, '%'+this_string+'%'))

参考:http://mysql-python.sourceforge.net/MySQLdb.html