繁体   English   中英

Flask SQLAlchemy是否包含/喜欢产生不同的结果?

[英]Flask SQLAlchemy Contains/Ilike producing different results?

我试图从包含/ ilike的数据库中查询一列,它们产生不同的结果。 知道为什么吗?

我当前的代码;

search = 'nel'

find = Clients.query.filter(Clients.lastName.ilike(search)).all()
# THE ABOVE LINE PRODUCES 0 RESULTS

find = Clients.query.filter(Clients.lastName.contains(search)).all()
# THE ABOVE LINE PRODUCES THE DESIRED RESULTS

for row in find:
    print(row.lastName)

我担心的是我缺少什么吗? 我读过“包含”也不总是起作用。 有没有更好的方法来做我在做的事情?

对于ilikelike ,你需要在你的搜索这样的通配符:

Clients.lastName.ilike(r"%{}%".format(search))

正如Postgres文档所说:

LIKE模式匹配始终覆盖整个字符串。 因此,要匹配字符串中任何位置的序列,模式必须以百分号开头和结尾。

另一个区别是, contains区分大小写,而ilike区分大小写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM