[英]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)
我担心的是我缺少什么吗? 我读过“包含”也不总是起作用。 有没有更好的方法来做我在做的事情?
对于ilike
和like
,你需要在你的搜索这样的通配符:
Clients.lastName.ilike(r"%{}%".format(search))
正如Postgres文档所说:
LIKE模式匹配始终覆盖整个字符串。 因此,要匹配字符串中任何位置的序列,模式必须以百分号开头和结尾。
另一个区别是, contains
区分大小写,而ilike
区分大小写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.