Karşılaştırmak parantez koyarsanız:
... WHERE ... AND (WatchType = '%s') ORDER BY ...
o zaman karşılaştırma devre dışı bırakmak için değeri ' OR '' = '
kullanabilirsiniz. Bununla birlikte, SQL sorgusunu SQL enjeksiyonuna karşı savunmasız hale getirmek için oluşturmak kötü bir fikirdir; bunun yerine parametreleri kullanmalısın. WatchType
karşılaştırmasını devre dışı bırakmak için, onu yalnız bırakın:
query = """SELECT %s
FROM TVShowData
WHERE julianday(_Starttime) + (_RunningTime/24.0/60.0) > julianday('now', 'localtime')
%s
ORDER BY StartTime
LIMIT 15"""
if category:
filter = " AND WatchType = ?"
parameters = (category,)
else:
filter = ""
parameters =()
query = query % (','.join(properties), filter)
cur.execute(query, parameters)