How to select mysql rows in the order of IN clause

后端 未结 2 1350
灰色年华
灰色年华 2020-12-30 08:05

For example I have in the table EMPLOYEE:

(code, name)
(1, \'Jimmy\')
(2, \'Albert\')
(3, \'Michelle\')
(4, \'Felix\' )

if you do: (select

2条回答
  •  情深已故
    2020-12-30 08:55

    Use the FIND_IN_SET function:

    SELECT e.* 
      FROM EMPLOYEE e 
     WHERE e.code in (1,3,2,4) 
    ORDER BY FIND_IN_SET(e.code, '1,3,2,4')
    

    Or use a CASE statement:

    SELECT e.* 
      FROM EMPLOYEE e 
     WHERE e.code in (1,3,2,4) 
    ORDER BY CASE e.code
               WHEN 1 THEN 1 
               WHEN 3 THEN 2
               WHEN 2 THEN 3
               WHEN 4 THEN 4
             END
    

提交回复
热议问题