以下是我的问题的概括:
考虑表格
ID A B C
r1 1 1 0 1
. . . . .
. . . . .
. . . . .
rN N 1 1 0
列A,B,C
包含0
或的位置1
。我正在尝试编写一个 python 函数,该函数采用0
's 和1
's 的排列列表,生成一个查询,该查询将传递给 SQLite3,然后计算A,B,C
这些排列之一中的记录数。
例如,如果我将以下列表传递给我的函数permList = [[1,0,1],[1,0,0]]
,那么它会将[A,B,C]
组合为[1,0,1]
or的所有记录计数[1,0,0]
。
目前我正在这样做
def permCount(permList):
SQLexpression = "SELECT Count(*) FROM Table WHERE "
for i in range(len(permList)):
perm = permList[i]
SQLexpression += "(A=" + str(perm[0]) + " AND B=" + str(perm[1]) +
" AND C=" + str(perm[2]) + ")"
if i!=len(permList)-1:
SQLexpression += " OR "
*Execute SQLexpression and return answer*
现在这很好,但似乎有点麻烦。有没有更好的方法来动态生成输入长度permList
未知的 SQL 查询?