输出排序不正确

Output isn't ordered properly

如何按C、D、A、B和pincode时间顺序对结果进行排序?

原始结果:

S  Pincode
== =======
A  001
B  002
C  003
D  004
D  005
C  006
B  007
A  008

预期结果:

S  Pincode
== =======
C  003
C  006

D  004
D  005

A  001
A  008

B  002
B  007

代码:

SELECT 
  id,
  sector,
  pincode 

FROM 
  sh_av_spform 

WHERE 

  type='ticket' and 
  status='new' and 
  date(`createdate`) = CURDATE()

ORDER BY  

  FIELD( sector,  'C','D','A','B' ) ASC 

limit 5

在 SQL 以上,有时会给出按时间顺序排列不正确的密码 sector

我得到的输出无效,例如:

S  Pincode
== =======
C  003
C  006

D  005
D  004 <<< ???

A  001
A  008

B  007
B  002 <<< ???

有人知道如何解决这个问题吗?

您只能按一栏排序。将第二个添加到:

SELECT 
  id,
  sector,
  pincode 

FROM 
  sh_av_spform 

WHERE 

  type='ticket' and 
  status='new' and 
  date(`createdate`) = CURDATE()

ORDER BY  

  FIELD( sector,  'C','D','A','B' ) ASC,  
  pincode ASC

您没有在 ORDER BY 子句中包含 pincode

ORDER BY  
  FIELD( sector,  'C','D','A','B' )  , pincode

不需要写 ASC 因为它是默认排序。