Sqlalchemy查询包含数组中的变量

时间:2019-04-21 20:40:43

标签: sqlalchemy flask-sqlalchemy

现在已经呆了一周,没有结果,网上也没有任何帮助。

问题是,如何用'.contains'在数据库中保存的数组中查找值的方式查询值的数组。

在此示例中,我要查询所有包含“ white”的行和带有“ black”的行

为简单起见,这是数据库中数据的示例。 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行的数据

  

最终,正确的结果应该是所有行,因为在颜色列中包含白色和黑色。

非常感谢您

0 个答案:

没有答案