У меня есть запрос MySQL из Python, который выглядит следующим образом:
foos: Sequence[str] = get_user_specified_strs()
# Return all the rows where `foo` is in `foos`.
# If `foos` contains the string '*', return everything.
results = await conn.query_rows(
'''
SELECT ...
WHERE
'*' IN %(foos)s
OR foo IN %(foos)s
...
''',
{'foos': foos}
)
Проблема в том, что IN ()
недействителен в MySQL, поэтому пустой foos
вызовет сбой запроса. Есть ли способ написать запрос , не требуя динамической сборки SQL строки , чтобы он мог обрабатывать этот случай? То есть, рассматривая IN ()
как FALSE
.