首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: MySQLdb与查询混淆

Python: MySQLdb与查询混淆
EN

Stack Overflow用户
提问于 2017-01-04 14:02:55
回答 2查看 35关注 0票数 0

我试图用MySQL从MySQL SELECT * FROM TABLE WHERE Item LIKE 'G%'中查询一个表,该表可以查询数据,但SELECT * FROM TABLE WHERE Item LIKE G%不会导致SELECT * FROM TABLE WHERE Item LIKE G%中的错误1064。

代码语言:javascript
复制
query = "SELECT * FROM TABLE WHERE Item LIKE %s%% "
data = 'G'
cur.execute(query%(data))

返回错误,但如果

代码语言:javascript
复制
query = "SELECT * FROM TABLE WHERE Item LIKE '%s%%' "

使用'%s'而不是%s是正确的吗?浮点数和整数怎么办?如果数据是整数,我是将int(data)还是float(data)放在

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-04 14:05:01

预先构造类似的表达式并将查询参数化

代码语言:javascript
复制
query = "SELECT * FROM TABLE WHERE Item LIKE %s"
data = 'G'
cur.execute(query, (data + "%", ))
票数 2
EN

Stack Overflow用户

发布于 2017-01-04 14:06:05

一种更多的节能型方法可能是使用format

代码语言:javascript
复制
sql_template = 'SELECT * FROM TABLE WHERE Item LIKE {}'
sql_template.format('G%') # 'SELECT * FROM TABLE WHERE Item LIKE G%'

试试看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41465693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档