Я пытаюсь создать панель поиска, которая постоянно сужает строки в моей базе данных в зависимости от используемой строки.Я хочу, чтобы в моем поиске содержалось несколько слов, а в каждом слове - разные столбцы.
example.db
Make Model Year
------ ------ ------
Toyota Corolla 2000
Toyota Corolla 2002
Toyota Camry 2000
Toyota Camry 2002
Honda Civic 2002
Это то, что у меня есть до сих пор ...
@app.route("/search")
def search():
q = request.args.get("q") #q is a string containing make, model, and/or year
car = db.execute("SELECT * FROM places WHERE Make LIKE :q\
OR Model LIKE :q\
OR Year LIKE :q, q=q+"%")
Сейчас это работает, если я ищу только один столбец.Если у меня есть / search? Q = corolla, он выберет две строки с моделью венчика.Если у меня есть / search? Q = toyota + corolla, он не выберет ни одной строки, поскольку ни один столбец не имеет toyota corolla.
Я хочу сделать так, чтобы чем больше информации я вводил в q, тем ужерезультаты поиска будут
т.е.
- / search? q = toyota возвращает 4 строки
- / search? q = toyota + corolla возвращает 2 строки
- / search? q = toyota + corolla + 2000 возвращает 1 строку
Я уже некоторое время гуглю, но не могу правильно сформулировать свой вопрос.До сих пор я пытался разбить строку на пробелы и запрашивать каждое слово, но это было все равно, что искать их по отдельности.Я также попытался добавить подстановочный знак перед q, но это не решило проблему наличия нескольких слов в поиске вообще.Я полностью озадачен тем, что кажется чем-то простым.Ввод всегда будет в порядке марки, модели, года, если это имеет значение.Любая помощь приветствуется.