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