How do i cast char to integer while querying in django ORM?(在 Django ORM 中查询时如何将字符转换为整数?)
问题描述
最近开始使用Django ORM.我想执行这个查询
select student_id from student_id like "%97318%" order by CAST(student_id as UNSIGNED) desc;其中 student_id 是一个 CharField,我希望将其作为整数进行查询.我试过
student.objects.filter(student_id__contains "97318").order('-student_id')
工作正常.但是不知道也找不到如何将student_id"转换为 int 就像上面提到的Django ORM"的实际 MySQL 查询一样.我应该使用原始查询还是有出路?让我知道您的建议.
解决方案 无需使用 extra 的更新替代方案是 cast 函数(Django 1.10 中的新功能):
<预><代码>>>>从 django.db.models 导入 FloatField>>>从 django.db.models.functions 导入 Cast>>>Value.objects.create(整数=4)>>>value = Value.objects.annotate(as_float=Cast('integer', FloatField())).get()>>>>打印(value.as_float)4.0来自 https://docs.djangoproject.com/en/1.10/ref/models/database-functions/#cast
Recently started using Django ORM.I want to execute this query
select student_id from students where student_id like "%97318%" order by CAST(student_id as UNSIGNED) desc;
where student_id is a CharField which I want as integer for querying. I tried with
students.objects.filter(student_id__contains "97318").order('-student_id')
works fine. But don't know and couldn't find how to cast "student_id" to int like the actual MySQL query mentioned above with "Django ORM". should I use raw query or is there a way out? Let me know your suggestions.
An updated alternative without requiring the use of extra is the cast function (new in Django 1.10):
>>> from django.db.models import FloatField
>>> from django.db.models.functions import Cast
>>> Value.objects.create(integer=4)
>>> value = Value.objects.annotate(as_float=Cast('integer', FloatField())).get()>
>>> print(value.as_float)
4.0
From https://docs.djangoproject.com/en/1.10/ref/models/database-functions/#cast
这篇关于在 Django ORM 中查询时如何将字符转换为整数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Django ORM 中查询时如何将字符转换为整数?
基础教程推荐
- 带有WHERE子句的LAG()函数 2022-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- 带更新的 sqlite CTE 2022-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- 从字符串 TSQL 中获取数字 2021-01-01
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01
