我有一个巨大的数据存储在mysql数据库中。数据库中的列之一是长字符串。字符串之一是“ iEdge检测到'警告'条件'iedge it'”,它存储在string_type中。我必须查询数据库并找到多少个这样的字符串。我正在从我的python程序中查询。当我使用类似的东西

  cur.execute("select count(*) from table1 as tmp where tmp.err_string='"+row[r]+"'")


row [r]包含“ iEdge已检测到'警告'条件'iedge it'”

我收到错误1064(您的SQL语法有错误...)。我认为这是由于字符串中的某些引号引起的。我可以知道如何解决这个问题吗?

最佳答案

你可以尝试一下:

sql = "select count(*) from table1 as tmp where tmp.err_string=%s"
cursor.execute(sql, [row[r]])


让MySQL Python库担心转义特殊字符以及如何引用字符串。

有关更多信息,请参见this SO post

10-05 19:01