我正在创建一个控制台界面来添加、编辑和查看我的视频游戏集合的数据库中的条目。在编辑部分,我添加了一个搜索函数,以便找到特定的游戏。在搜索的select查询中,我有要从表中提取的变量,以及类似的条件。
对于我使用的select查询:
GameQuery = "SELECT Name, Sub_Name, Platform, Barcode, Edition, Overall_Condition, Region, Requirement, Optional FROM AllGames WHERE Name LIKE %s"然后用以下方式执行:
MediaCursor.execute(GameQuery, SearchCriteria)但是,如果我要搜索一个游戏,其中的名字包括一个撇号,例如汤姆克兰西的,它只会执行...LIKE %s,因为名称中的撇号会切断它。然后,我尝试用以下方法执行它:
MediaCursor.execute(GameQuery,(SearchCriteria,))正好适合我的情况。但是,我也不能为表名使用变量,这是我需要的。
我试着用:
GameQuery = "SELECT Name, Sub_Name, Platform, Barcode, Edition, Overall_Condition, Region, Requirement, Optional FROM %s WHERE Name LIKE %s"在这个执行过程中:
MediaCursor.execute(GameQuery, TableName,(SearchCriteria,))但它并没有用值替换%s。
然后,我尝试在这种情况下使用Python来处理代码。
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)但这在中给出了一个语法错误。
发布于 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))
不过,谢谢你们的帮助。
https://stackoverflow.com/questions/57518297
复制相似问题