我有一个 SQLite 查询,它取决于 2 个变量,性别和手。其中每一个都可以有 3 个值,其中 2 个实际上意味着某些东西(所以男性/女性和左/右),第三个是“全部”。如果变量的值为“全部”,那么我不在乎该列的特定值是什么。
是否可以通过单个查询来实现此功能,并且只需更改变量?我已经查找了通配符或无关运算符,但除了 % 在这种情况下不起作用之外,我找不到任何其他运算符。
显然,我可以制作一堆 if 语句,并为每种情况使用不同的查询,但这不是很优雅。
代码:
select_sql = """ SELECT * FROM table
WHERE (gender = ? AND hand = ?)
"""
cursor.execute(select_sql, (gender_var, hand_var))
即,如果gender_val = 'male' 和hand_var = 'left',则此查询有效,但如果gender_val 或hand_var = 'all' 则无效