Sqlite SQLAlchemy查询依据。包含字符串

Sqlite SQLAlchemy查询依据。包含字符串,sqlite,flask-sqlalchemy,Sqlite,Flask Sqlalchemy,您好,我对SQLAlchemy、sqlite和Flask非常陌生,我使用以下代码从数据库中查询 db.session_qry(Kinase).filter(Kinase.Gene_Synonyms.contains(srch_strg) 但是当srch\u strg='PKB' 查询从Gene_Synonyms列返回多行,因为在该列中有两行,一行有(PKB RAC),另一行刚刚有(PKBG),因此我必须使用.contains而不是iLike,因为有些行包含多个基因名同义词。 因此我得到了PK

您好,我对SQLAlchemy、sqlite和Flask非常陌生,我使用以下代码从数据库中查询

db.session_qry(Kinase).filter(Kinase.Gene_Synonyms.contains(srch_strg) 
但是当
srch\u strg='PKB'
查询从
Gene_Synonyms
列返回多行,因为在该列中有两行,一行有(PKB RAC),另一行刚刚有(PKBG),因此我必须使用.contains而不是iLike,因为有些行包含多个基因名同义词。 因此我得到了PKB和PKBG . 我试过了

正如stackoverflow上发布的类似问题以及

db.session_qry(Kinase).filter(Kinase.Gene_Synonyms.filter_by(’%’+str(srch_strg)+’%’)

但是,请继续获取PKB和PKBG,而我只需要确切的srch_strg,即PKB

您可能需要在这个Gene_同义词专栏中以另一种方式格式化数据。对我来说,仅仅用一个字符串进行过滤似乎相当棘手。最终你可以用
srch_str=“PKB”
搜索,但我认为这并不是你想要的。最后,无论您使用的是
contains
还是
ilike
,查询都会返回具有匹配字符串的列。谢谢,我在更改了列中字符串的格式后成功地做到了这一点,使它们采用csv格式,从而使启用的字符串完全匹配
db.session_qry(Kinase).filter(Kinase.Gene_Synonyms.filter_by(’%’+str(srch_strg)+’%’)