Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite python如何在SELECT中添加多个过滤器_Python_Sqlite_Select_Filter - Fatal编程技术网

SQLite python如何在SELECT中添加多个过滤器

SQLite python如何在SELECT中添加多个过滤器,python,sqlite,select,filter,Python,Sqlite,Select,Filter,如何在sql SELECT中添加多个筛选器? 对于sql SELECT,我需要三个不同的过滤器/参数。 目前我有一个,看起来是这样的: conn = sqlite3.connect(SerienPlaner) cur = conn.cursor() query = """SELECT %s FROM TVShowData WHERE julianday(_Starttime) + (_RunningTime / 24.0 / 60.0) > julian

如何在sql SELECT中添加多个筛选器? 对于sql SELECT,我需要三个不同的过滤器/参数。 目前我有一个,看起来是这样的:

    conn = sqlite3.connect(SerienPlaner)
cur = conn.cursor()
query = """SELECT %s
       FROM TVShowData
       WHERE julianday(_Starttime) + (_RunningTime / 24.0 / 60.0) > julianday('now', 'localtime')
       %s
       ORDER BY _Starttime
       LIMIT 15"""
if category == __LS__(30116):
    filter = ""
    parameters = ()
else:
    filter = " AND WatchType = ?"
    parameters = (category,)

query = query % (','.join(properties), filter)
cur.execute(query, parameters)
我想补充一点

if __series_in_db__:
    filter = " AND inDB = ?"
    parameters = (TRUE,)
else:
    filter = ""
    parameters = ()

\uu db\uuuuu中的系列和
\uuuuuu firstaired\uuuuuu
是脚本中的GUI设置。。。
对于
\uuuuu firstaired\uuuuuu
我想要一个fatchall,其中neuepisode=NEU或FREE-TV NEU…

您只需将SQL/参数附加到前一个:

filter = ""
parameters = []
if ...:
    filter += " AND xxx = ?"
    parameters += [x]
if ...:
    filter += " AND yyy = ?"
    parameters += [y]

您只需将SQL/参数附加到上一个:

filter = ""
parameters = []
if ...:
    filter += " AND xxx = ?"
    parameters += [x]
if ...:
    filter += " AND yyy = ?"
    parameters += [y]

从代码维护的角度来看,在这里重新考虑您的方法。不需要有条件地创建SQL语句,只需基于if/then/else条件创建整个SQL字符串即可。@Parfait三个可选筛选器将导致八种情况。所有的参数都是值。从代码维护的角度来看,在这里重新考虑您的方法。不需要有条件地创建SQL语句,只需基于if/then/else条件创建整个SQL字符串即可。@Parfait三个可选筛选器将导致八种情况。所有的参数都是数值。