设置非典型排序顺序

gat*_*tor 2 php sql

我正在使用一个数据库,最终用户可以上传其收藏品和其他效果的照片,并且根据其中一个条件,他们可以添加条目是产品的条件(薄荷,薄荷,优质等).如果我想按条件对这些条目进行排序,它将按字母顺序对其进行排序,但这与实际的按条件排序不对应.例如,E(优秀)将出现在M(薄荷)之前,当优秀比薄荷更糟糕时.

如何在数据库中为这些字母指定值,因此在排序时,它们将按照非字母顺序显示,但按实际等级显示(M> NM> E> G> P).

Kev*_*sox 6

将case语句添加到order by子句中.这是一些伪sql:

SELECT * FROM COLLECTIBLES
ORDER BY CASE condition
  WHEN 'EXCELLENT' THEN 1
  WHEN 'MINT' THEN 2
  WHEN 'NEAR MINT' THEN 3
  ELSE 4
END
Run Code Online (Sandbox Code Playgroud)

工作示例:http://sqlfiddle.com/#!2/328c2/1