我正在尝试从数据库中的表中获取速度值列表。我想知道他们是否是一个SQL命令/方法,允许我在WHERE函数中传递charid列表,这样我就不必创建FOR循环并分别执行四个搜索。你知道吗
party_ids= [4, 3, 1, 2]
def initializegame(party_ids):
#Get selected party members IDS
print(party_ids)
#Obtain Speeds
fetchspeed=("SELECT startspeed FROM characters WHERE CharID=%s")
print(fetchspeed)
mycursor.execute(fetchspeed,party_ids)
myspeeds=mycursor.fetchall()
print(myspeeds)
print("done")
我对SQL还比较陌生,可能遗漏了一些重要的东西。你知道吗
我确实试过: passing a list to a where clause 但这有点太难理解了。你知道吗
提前谢谢
当有多个要筛选的值时,请使用IN关键字。在本例中,您知道整数值,因此SQL注入不是问题。但是您编写的函数可以传递任意值,而SQL注入可能是一个问题,或者可以传递需要转义的字符串文本。因此,通过让数据库驱动程序处理实际参数来解决这些问题是值得的:
变量sql变为:
从CharID所在的字符中选择startspeed(%s、%s、%s、%s)
然后execute语句将4个IN值的列表作为第二个参数传递。你知道吗
您可以使用IN关键字根据列表进行筛选。你知道吗
您可以从这个MySQL blog tutorial中找到有关IN关键字及其工作方式的更多信息。你知道吗
相关问题 更多 >
编程相关推荐