首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL,Python:选择WHERE查询

MySQL,Python:选择WHERE查询
EN

Stack Overflow用户
提问于 2019-08-16 02:33:38
回答 1查看 218关注 0票数 1

我正在创建一个控制台界面来添加、编辑和查看我的视频游戏集合的数据库中的条目。在编辑部分,我添加了一个搜索函数,以便找到特定的游戏。在搜索的select查询中,我有要从表中提取的变量,以及类似的条件。

对于我使用的select查询:

代码语言:javascript
复制
GameQuery = "SELECT Name, Sub_Name, Platform, Barcode, Edition, Overall_Condition, Region, Requirement, Optional FROM AllGames WHERE Name LIKE %s"

然后用以下方式执行:

代码语言:javascript
复制
MediaCursor.execute(GameQuery, SearchCriteria)

但是,如果我要搜索一个游戏,其中的名字包括一个撇号,例如汤姆克兰西的,它只会执行...LIKE %s,因为名称中的撇号会切断它。然后,我尝试用以下方法执行它:

代码语言:javascript
复制
MediaCursor.execute(GameQuery,(SearchCriteria,))

正好适合我的情况。但是,我也不能为表名使用变量,这是我需要的。

我试着用:

代码语言:javascript
复制
GameQuery = "SELECT Name, Sub_Name, Platform, Barcode, Edition, Overall_Condition, Region, Requirement, Optional FROM %s WHERE Name LIKE %s"

在这个执行过程中:

代码语言:javascript
复制
MediaCursor.execute(GameQuery, TableName,(SearchCriteria,))

但它并没有用值替换%s

然后,我尝试在这种情况下使用Python来处理代码。

代码语言:javascript
复制
SearchCriteria = raw_input("Input The Game Name: ")
TableName = raw_input("Input The Platform: ")
qy = TableName, (SearchCriteria,)
GameQuery = "SELECT Name, Sub_Name, Platform, Barcode, Edition, Overall_Condition, Region, Requirement, Optional FROM %s WHERE Name LIKE %s" %qy
MediaCursor.execute(GameQuery)

但这在中给出了一个语法错误。

EN

回答 1

Stack Overflow用户

发布于 2019-08-16 18:53:39

我修好了。我将TableName变量放在GameQuery行中,并按如下方式执行:

GameQuery = "SELECT Name, Sub_Name, Platform, Barcode, Edition, Overall_Condition, Region, Requirement, Optional FROM " + TableName + " WHERE Name LIKE %s"

MediaCursor.execute(GameQuery,(SearchCriteria))

不过,谢谢你们的帮助。

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

https://stackoverflow.com/questions/57518297

复制
相关文章

相似问题

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