我正在尝试从MySQL查询表
在MySQL中
SELECT * FROM TABLE WHERE Item LIKE 'G%'
能够查询数据,但SELECT * FROM TABLE WHERE Item LIKE G%
不能导致错误1064
在Python中
query = "SELECT * FROM TABLE WHERE Item LIKE %s%% "
data = 'G'
cur.execute(query%(data))
它会返回错误,但如果
则有效query = "SELECT * FROM TABLE WHERE Item LIKE '%s%%' "
使用'%s'
代替%s
是正确的方法吗?
浮点数和整数怎么样?如果数据是整数,我应该放int(data
)还是float(data)
?
答案 0 :(得分:2)
预先构建您的like表达式并参数化查询:
query = "SELECT * FROM TABLE WHERE Item LIKE %s"
data = 'G'
cur.execute(query, (data + "%", ))
答案 1 :(得分:0)
更加pythonic的方式可能是使用format
:
sql_template = 'SELECT * FROM TABLE WHERE Item LIKE {}'
sql_template.format('G%') # 'SELECT * FROM TABLE WHERE Item LIKE G%'
试一试。