时间:2010-07-24 14:31:15

标签: sql sqlalchemy python-elixir

6 个答案:

答案 0 :(得分:118)

答案 1 :(得分:6)

添加上述答案,无论谁寻找解决方案,您也可以尝试匹配'运营商代替'喜欢'。不想有偏见但在Postgresql中它对我来说非常有用。

Note.query.filter(Note.message.match("%somestr%")).all()

它继承了数据库函数,例如 CONTAINS MATCH 。但是,它在SQLite中不可用。

有关详细信息,请转到Common Filter Operators

答案 2 :(得分:5)

试试这段代码

output = dbsession.query(<model_class>).filter(<model_calss>.email.ilike('%' + < email > + '%'))

答案 3 :(得分:1)

如果您想要不区分大小写的 like 子句实现:

session.query(TableName).filter(TableName.colName.ilike(f'%{search_text}%')).all()

答案 4 :(得分:0)

尽管案例匹配,但使用PostgreSQL Cannot call ReactDOM.render with document.getElementById(...) bound to container because null [1] is incompatible with Element [2]. see accepted answer above)不适用于我,但是ilike(案例 i nsensisitive like < / strong>)。

答案 5 :(得分:0)

如果使用本机sql,则可以引用我的代码,否则请忽略我的答案。

SELECT * FROM table WHERE tags LIKE "%banana%";
from sqlalchemy import text

bar_tags = "banana"

# '%' attention to spaces
query_sql = """SELECT * FROM table WHERE tags LIKE '%' :bar_tags '%'"""

# db is sqlalchemy session object
tags_res_list = db.execute(text(query_sql), {"bar_tags": bar_tags}).fetchall()