SQLAlchemy子字符串在字符串中

blu*_*fer 2 python sql sqlalchemy

我正在尝试在数据库中查询在输入搜索字符串中具有字符串字段的记录。

像这样:

User.query.filter(User.name in search_string)
Run Code Online (Sandbox Code Playgroud)

当然,这不是有效的,因为它不是有效的SQLAlchemy语句。这似乎是一个简单的问题,但我确实找不到合适的列运算符。

我尝试了in_运算符:

User.query.filter(User.name.in_(search_string)
Run Code Online (Sandbox Code Playgroud)

但这当然是行不通的。我需要的是is_substring操作员。

And*_*ujo 6

尝试这个:

User.query.filter(User.name.match(search_string))或者

User.query.filter(User.name.contains(search_string))

要使用,in_您必须使用一个列表,如下所示:

search_string = ['ed', 'wendy', 'jack']

User.query.filter(User.name.in_(search_string))
Run Code Online (Sandbox Code Playgroud)


r-m*_*m-n 5

在SQL中

SELECT * FROM user 
WHERE 'search string' LIKE CONCAT('%', name, '%')
Run Code Online (Sandbox Code Playgroud)

SQLAlchemy contains(other)产生子句LIKE '%<other>%'

from sqlalchemy import literal

User.query.filter(literal(search_string).contains(User.name))
Run Code Online (Sandbox Code Playgroud)