2013-08-09 9 views
53

djangoでこのSQL文に相当するものは何ですか?djangoクエリでsql "LIKE"と同等

SELECT * FROM table_name WHERE string LIKE pattern; 

これをdjangoに実装するにはどうすればよいですか?試しました

result = table.objects.filter(pattern in string) 

しかし、それは動作しませんでした。これをどのように実装するのですか?

答えて

108

使用containsまたはicontains

result = table.objects.filter(string__contains='pattern') 
+1

うまくいきました。ありがとうございます –

+13

大文字と小文字を区別しない検索では** __ icontains ** - > 'result = table.objects.filter(string__icontains = 'pattern')' –

+7

この回答は可能なパターンのサブセットのみを対象としています。 '%a%b%'のようなパターンは扱えません。 – kasperd

12

が含まれているとfalsetrueで言及icontainsは彼らと一緒にSELECT ... WHERE headline LIKE '%pattern%

ようなクエリを作成し、あなたが同様の行動にこれらのものが必要になる場合があります: startswithistartswithendswithiendswith

作成

フィールド内の文字列のための

SELECT ... WHERE headline LIKE 'pattern%

または

SELECT ... WHERE headline LIKE '%pattern

6
result = table.objects.filter(string__icontains='pattern') 

大文字小文字を区別しない検索。