Занимался этим уже неделю, без результатов и в Интернете ничего не помогло.
Вопрос в том, как вы запрашиваете массив значений так же, как «.contains» ищет значение вмассив, сохраненный в БД.
В этом примере я хочу запросить все строки, содержащие "white" и строки с "black"
Это пример данных в базе данныхдля простоты.6 строк - «красный» имеет 1 результат, «белый» имеет 3 результата, «черный» имеет 4 результата
id|color|
-------
1|red,white,blue|
2|black,white|
3|black|
4|white|
5|black|
6|black|
Вот некоторые методы, которые Iv пробовал с результатами:
Использование .in_ с массивом.
result = db.session.query(Model).filter(Model.color.in_((['white', 'black']))).all()
Результат дает данные для строк = 3,4,5,6
Использование .contains с массивом.
result = db.session.query(Model).filter(Model.color.contains('white', 'black')).all()
Результат TypeError: contains() takes exactly 2 arguments (3 given)
Использование .like с массивом.
result = db.session.query(Model).filter(Model.color.like('%white%black%')).all()
Результат дает данные для строки 2
В конечном итоге правильным результатом должны быть все строки, так как белый и черный цвета содержатся в столбце цвета.
Большое спасибо за продвинутый,