mysql中条件函数
世上有味之事,包括诗、酒、哲学、爱情,往往无用。吟无用之诗,醉无用之酒,读无用之书,钟无用之情,终于成一无用之人,却因此活得有滋有味。——周国平《风中的纸屑》
在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子
这里有这样一张表,数据如下:

如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下,我们可以这么写
| SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC | 
这里使用到了MYSQL的IF函数
| IF([条件],[为true时值],[为false时值]) | 
例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的
我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE、END一套去做
| SELECT *,( CASE WHEN STATUS = 'AUTHING' THEN 0 WHEN STATUS = 'NOT_AUTH' THEN 1 WHEN STATUS = 'HAS_AUTH' THEN 2 ELSE 999 END ) AS sort | 
这里
| CASE | 
Tips:在除了查询语句中,其余操作的SQL都可以用该函数哦
这就是今天的博客内容啦!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蒋立坤的博客!
 评论
Va







