现在已经呆了一周,没有结果,网上也没有任何帮助。
问题是,如何用'.contains'在数据库中保存的数组中查找值的方式查询值的数组。
为简单起见,这是数据库中数据的示例。 6行-“红色”有1个结果,“白色”有3个结果,“黑色”有4个结果
id|color|
-------
1|red,white,blue|
2|black,white|
3|black|
4|white|
5|black|
6|black|
以下是我尝试过的一些方法:
将.in_与数组配合使用。
result = db.session.query(Model).filter(Model.color.in_((['white', 'black']))).all()
结果给出了行= 3、4、5、6的数据
使用。包含数组。
result = db.session.query(Model).filter(Model.color.contains('white', 'black')).all()
结果TypeError: contains() takes exactly 2 arguments (3 given)
与数组一起使用。
result = db.session.query(Model).filter(Model.color.like('%white%black%')).all()
结果给出第2行的数据
最终,正确的结果应该是所有行,因为在颜色列中包含白色和黑色。
非常感谢您