Ari*_*ian 3 django django-models django-orm python-3.x
这是我的查询
SELECT * FROM `music` where lower(music.name) = "hello"
我怎样才能用 django 发送这个查询
我尝试了这个,但它没有在查询中添加更低的值
>>> Music.objects.filter(name__iexact="hello")
(0.144) SELECT `music`.`id`, `music`.`name`, `music`.`artist`, `music`.`image`, `music`.`duration`, `music`.`release_date`, `music`.`is_persian` FROM `music` WHERE `music`.`name` LIKE 'hello' LIMIT 21; args=('hello',)
<QuerySet []>
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用如下Lower 数据库功能。
>>> from django.db.models.functions import Lower
>>> lower_name_music = Music.objects.annotate(lower_name=Lower('name'))
>>> lower_name_music.filter(lower_name__iexact="hello")
Run Code Online (Sandbox Code Playgroud)
第一条语句是导入数据库函数。
第二条语句是添加lower_name使用列上的 Lower 函数命名的计算列name。此时数据库尚未被查询。
第三条语句是使用计算列进行过滤。当这条语句打印出结果时,实际上是针对数据库执行了一个查询。
| 归档时间: |
|
| 查看次数: |
4927 次 |
| 最近记录: |