数据库
2021-02-25
2021-02-25
世上有味之事,包括诗、酒、哲学、爱情,往往无用。吟无用之诗,醉无用之酒,读无用之书,钟无用之情,终于成一无用之人,却因此活得有滋有味。——周国平《风中的纸屑》
在我们日常开发中,有时可能会在SQL
中写一些条件,例如这里一个例子
这里有这样一张表,数据如下:
如果我们需要把未认证(状态为NOT_AUTH
)的用户放到前面排序显示,在不影响分页的情况下,我们可以这么写
1 | SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC |
这里使用到了MYSQL
的IF
函数
1 | IF([条件],[为true时值],[为false时值]) |
例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的
我们则可以使用MYSQL
中的CASE
、WHEN
、THEN
、ELSE
、END
一套去做
1 | SELECT *,( CASE WHEN STATUS = 'AUTHING' THEN 0 WHEN STATUS = 'NOT_AUTH' THEN 1 WHEN STATUS = 'HAS_AUTH' THEN 2 ELSE 999 END ) AS sort |
这里
1 | CASE |
Tips
:在除了查询语句中,其余操作的SQL
都可以用该函数哦
这就是今天的博客内容啦!