gpt4 book ai didi

python - Flask SQLAlchemy 包含/我喜欢产生不同的结果?

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:03 25 4
gpt4 key购买 nike

我正在尝试使用 contains/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 docs说:

LIKE pattern matching always covers the entire string. Therefore, to match a sequence anywhere within a string, the pattern must start and end with a percent sign.

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

关于python - Flask SQLAlchemy 包含/我喜欢产生不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com