Не уверен, что это самый умный способ сделать это, но предположим, что вы заранее знаете, что можете иметь 1 целочисленный фильтр (цена) и 1 строковый фильтр (имя автора), я бы попробовал:
SELECT* ИЗ КНИГИ ГДЕ (цена <0 ИЛИ И BOOKS.price = цена) И (author = "" ИЛИ BOOKS.author = автор); </p>
Я не эксперт по SQLite, пожалуйста, проверьте синтаксис.Хитрость здесь в том, чтобы установить цену <0, если фильтр не установлен (следовательно, все строки учитываются, так как условие цена <0 истинно), и установить автора как пустую строку, чтобы не фильтровать по автору (SELECT не будетотфильтруйте эти строки, так как условие истинно). </p>
Это будет работать!