mysql字段特定值排序实现方式

时间:2020-11-25 06:54:57

场景

要求某个字段的一个特定的值,要放在第一行显示。

实现方式一

SELECT * FROM company WHERE 1=1 and companyid=1
order by username='admin' DESC ,isadmin ASC

这样就实现了username为admin的数据显示在了最上方

实现方式二

(SELECT * FROM company WHERE 1=1 and companyid=1 and 
username='admin')union(SELECT * FROM company WHERE
username is not null order by ctime desc limit 0,100)

这种方式是实现两张子表中的数据进行合并,但左右两张表的字段列数一定要相同,且union会去掉重复行数据(如果不想去掉重复的行,可以使用union all)
在子表中使用order by 一定要与 limit连用,否则是失效的。提倡在检索的最后面使用 order by