之前用django做模糊查询的时候,总结研究的,如何在模糊查询过程中,进行排序,全匹配放在最前面,这里使用的是sql的case when语句
先建表,为了演示,表就从简
CREATE TABLE `user` (
`id` varchar(20) NOT NULL,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ;
插入几条数据
insert into user values(1,'张三');
insert into user values(2,'五张三');
insert into user values(3,'张三五');
insert into user values(4,'王五张三');
insert into user values(5,'王张三五');
方法一:
使用orm的Case When函数
case = Case(
When(name=query_key, then=1),
When(name__endswith=query_key, then=2),
When(name__startswith=query_key, then=3),
When(name__contains=query_key, then=4),
default=5,
output_field=