【问题标题】:SQL formatting issue in pythonpython中的SQL格式化问题
【发布时间】:2021-08-10 17:27:37
【问题描述】:

对于下面来自 python/mysql 的查询

op = dbcon.query("select * from configtable where xmlfile like '%"Check_This_Attribute" enabled="true"%'")

出现错误:

SyntaxError: 无效语法

谁能帮忙

【问题讨论】:

  • 你想运行的查询是什么,只是在普通的 sql 中?很难判断哪些双引号是错误的,因为你搞砸了语法,哪些是错误的,因为未处理的转义。

标签: python mysql sql


【解决方案1】:

如果 Check_This_Attribute 是一个 python 变量,那么你需要用 + 号连接字符串,并转义你的双引号。

"select * from configtable where xmlfile like '%" + Check_This_Attribute + "%enabled=\"true\"%'"

【讨论】:

  • 不是 python 变量,它是访问配置 xml 的一种方式
  • 将您的 SQL 命令存储在一个字符串中。 sql = 'put your string here' 然后做一些 print() 语句来看看它是什么样子的,然后反复试验直到你得到它。
【解决方案2】:

您的字符串中有双引号,由双引号分隔。那是行不通的。尝试逃脱它们:

op = dbcon.query("select * from configtable where xmlfile like '%\"Check_This_Attribute\" enabled=\"true\"%'")

如果Check_This_Attribute 不是字符串而是变量,请使用例如用于插入其内容的格式字符串:

op = dbcon.query(f"select * from configtable where xmlfile like '%\"{Check_This_Attribute}\" enabled=\"true\"%'")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多