Django中MySQL的'LIKE'用法

0 投票
2 回答
1141 浏览
提问于 2025-04-18 13:12

我刚接触Django,

我想问的是,如何在Django的过滤器中实现类似于MYSQL的%LIKE%功能。

我想要的效果是这样的:

myModel.objects.filter(myField__**like**="xyz")

就像我们可以这样做:

myModel.objects.filter(myField__startswith="xyz")

这可以匹配以'xyz'开头的字符串,但我想要的是能够在myField内容的任何位置进行匹配。

我知道可以通过正则表达式和.extra()来实现,但我想要一个更简单直接的方法。

提前谢谢大家。

2 个回答

2

如果你想查找某个字段中包含特定内容的记录,可以使用 contains 操作符,比如 my_model.objects.filter(my_field__contains='xyz')。如果你希望这个查找不区分大小写,可以使用 icontains

4

你可以这样做:

myModel.objects.filter(myField__contains = "xyz")

注意:__contains是区分大小写的。如果你不在乎字母的大小写,可以使用__icontains

撰写回答