mysql 如何把某字段变成是或否后进行排序

发布于 2019-12-17 11:01:50

需求:需要对用户进行排序,把有头像的优先排序,然后再根据资料更新时间排序。
假设 头像字段:avatar,更新时间字段:updatetime

有同学讲可以用 avatar desc,但显然不够准确,因为avatar是字符串,每个头像的URL又不尽相同,这样会使得用户头像会avatar 字符串长度进行排序,显然跟我们的需求有悖。

解决思路:
使用mysql里的case when进行 判断用户是否有头像,然后定义成新字段,在用来排序
参考SQL:

SELECT
    CASE
WHEN avatar = '' THEN
    0
ELSE
    1
END is_avatar,
 updatetime
FROM
    user
ORDER BY
    is_avatar DESC,
    updatetime DESC
0 条评论

发布
问题