MySQL按特定顺序按字段排序

8 php mysql sql

我试图在PHP中运行SQL查询并按一个列排序,但按特定顺序排序

我试过这个:

$sql3="SELECT * from extension
where client_id = '".$result2["id"]."' 
ORDER BY FIELD(type, 'term', 'queue', 'ivr', 'voicecentre', 'conference', 'callback', 'intercom', 'queuecentre') ";
Run Code Online (Sandbox Code Playgroud)

但它根本就没有订购

ech*_*_Me 0

尝试这个

  ORDER BY  case 
              when type= 'term'         then 0
              when type=  'queue'       then 1
              when type=  'ivr'         then 2
              when type=  'voicecentre' then 3
              when type=  'conference'  then 4
              when type=  'callback'    then 5
              when type=  'intercom'    then 6
              when type=  'queuecentre' then 7
          else 8
        end ASC
Run Code Online (Sandbox Code Playgroud)

编辑:

我想你必须改变这里的引号

 where client_id = '".$result2['id']."' 
Run Code Online (Sandbox Code Playgroud)

查看演示以了解我和您的问题

编辑2:

但如果您使用的是 SQL 陷阱,那么此函数(ORDER BY FIELD)将无法正确排序。

在这里查看这篇文章并修复它。