Как сформулировать SQLite запрос с kwargs

Помогите разобраться в том, как с помощью SQLite3 сделать запрос, когда я не знаю какое количество аргументов получит функция?

Допустим есть функция, которая осуществляет поиск в базе данных получая разное кол-во ключевых аргументов: def find(**kwargs).

Запрос у меня выглядит следующим образом и в данный момент ищет по сути только по 1 аргументу:

'SELECT * FROM Books WHERE author = ? OR title = ? OR year = ?', (book_author, book_title, book_year)

Как мне его откорректировать, чтобы поиск был по 1 или нескольким аргументам (с AND естественно). Если функция получит только 1 аргумент (author) или 2 или все 3? Не совсем могу понять...


Ответы (1 шт):

Автор решения: Oopss
def find(**kwargs):
    query = "SELECT * FROM Books WHERE "
# обработка параметров
    query += f"{key} = ? "
    params.append(value)
    query += "OR " или "AND"
# по параметрам дополнить запрос
    cursor.execute(query, tuple(params))
→ Ссылка