class F
F()是代表模型字段的值,也就是说对于一些特殊的字段的操作,我们不需要数据先取到内存中,然后操作,在存储到db中了。
以下为几个使用的经典场景:
1. 统计点击量,点赞(每次加1)
from django.db.models import F
Reporters.objects.filter(id=case_id).update(thumb_num=F(‘thumb_num’) + 1)
2.一个合同字段,结束日期和终止日期的比较很容易实现 终止日期小于结束日期
from
因为在做一个项目需要筛选掉一部分产品列表中的产品,使其在列表显示时排在最后,但是所有产品都要按照更新时间排序。
研究了一下系统的数据库结构后,决定将要排除到后面的产品加为粗体,这样在数据库中的“ifbold”就会被标记为1,而其他产品就默认标记为0,然后就打算使用MySQL在Order By时进行多字段排序。
Order by的多条件分割一般使用英文逗号分割,所以我测试的SQL如下:
代码如下:
select * from {P}_product_con where $scl order by
也许大家有时候会遇到需要将把数据库中的某张表的数据按照该表的某个字段分类输出,比如一张数据表area如下
我们需要将里面的area按照serialize字段进行分类输出,比如这种形式:
areas serialize
阿蓝色,艾沙云 A
重庆森林,传承家园 C
红军楼小区,海员新村 H
………
要以这种形式放映出来,于是可以这样做,使用mysql中的group_concat()
、group by实现,
select serialize,group_concat(area) as areas