[Solved]-Django query how to write: WHERE field LIKE '10__8__0__'?

15👍

You can do this with django-like:

MyModel.objects.filter(field__like='10%8%0%')

Also I created a related ticket on the Django project site

👤Goin

6👍

The easiest way to do the search you intend to do is by regular expression:

MyModel.objects.filter(field__regex=r'^10..8..0..$')

Edit:

My solution is possibly much slower than LIKE. The problem though is that the django ORM does not allow easy access to LIKE. It’d be easiest if startswith or endswith were sufficient for your purposes.

👤tback

5👍

You can use extra to do this:

MyModel.objects.extra(where=["column_name LIKE '%10%"])

Note that column_name is the column name in the database, rather than the field name in your Django model. In many cases, the field name and column name will be the same, but if they differ, take care to use the column name.

-2👍

In SQL, you can query it like:

WHERE field LIKE '10??8??0??'

Try that in your Django filter.

👤Jordan

Leave a comment