代码之家  ›  专栏  ›  技术社区  ›  Sasha

MySQL-在SELECT语句中分配新名称并按新名称排序

  •  0
  • Sasha  · 技术社区  · 4 年前

    id | first_name | last_name | role_id 
    

    角色\u id SELECT语句 我可以这样做:

     SELECT users.*, (
        if(role_id = 1, roleName), 
        if(role_id = 2, roleName2),
        if(role_id = 3, roleName3))
        AS roleName )
    ORDER BY roleName DESC
    
    1 回复  |  直到 4 年前
        1
  •  2
  •   forpas    4 年前

    CASE 表达式:

     SELECT *, 
        CASE role_id
          WHEN 1 THEN 'roleName1'
          WHEN 2 THEN 'roleName2'
          WHEN 3 THEN 'roleName3'
        END AS roleName
    FROM users
    ORDER BY roleName DESC
    

    role_id ELT()

    SELECT *, ELT(role_id, 'roleName1', 'roleName2', 'roleName3') AS roleName
    FROM users
    ORDER BY roleName DESC