class test(models.Model):
name=models.CharField(max_length=100)
phone=models.CharField(max_length=100)
creat_time=models.DateTimeField(auto_now_add=True)
def get_my_config_info(request):
#获取电话
phone=request.GET.get('phone')
#该电话对应所有的test数据,1、如果遇到name相同,则按creat_time,获取最新的那一条
????这个有啥思路
例如
数据库
id | name | phone | creat_time |
---|---|---|---|
1 | 张三 | 12345 | 2021-10-10 |
2 | 李四 | 12345 | 2021-10-11 |
3 | 张三 | 12345 | 2021-10-12 |
4 | 李四 | 12345 | 2021-10-13 |
5 | 王五 | 54321 | 2021-10-14 |
希望获取phone=12345的,所有信息(如有重复取最新)
[
{id:3 ,name:张三 ,phone:12345,creat_time:2021-10-12}
{id:4 ,name:李四 ,phone:12345,creat_time:2021-10-13 }
]
有啥好的思路不?
这个时间是可以直接比大小的。
你可以查询phone=12345,后面根据creat_time进行降序排序,在limit 1;选择显示一条。
类名是test
test.objects.filter(phone='12345').order_by('creat_time')[-1]
1.select max(id) as ids,name from test group by name 数据表如果是递增id的话 通过name分组查出唯一人的最大id
2.select * from test where id in ids 通过ids 查出数据
题主,你这个phone下有几个name,多个name怎么可能返回一条,不是多条吗?
主键ID是自增的,通过条件筛选和ID排序,获取第一条