在使用MySQL数据库时,有时需要对查询出来的结果进行排序,但是有时我们不单单只按照 id 的大小或者字母的前后顺序之类的简单规则进行排序,需要按照一种自己的规则来排序,就可以使用下面的方法:
ORDER BY FIELD(
name
, ‘李四’, ‘赵六’, ‘张三’, ‘王五’)
使用 ORDER BY FIELD(需要进行排序的字段
, ‘条件1’, ‘条件2’, ‘条件3’, ‘条件4’)
SELECT * FROM
test
WHEREname
IN (‘张三’, ‘李四’, ‘王五’, ‘赵六’)
ORDER BY FIELD(name
, ‘李四’, ‘赵六’, ‘张三’, ‘王五’)
下面案例是关联查询排序:
SELECT * FROM t_basic_contract AS B LEFT JOIN t_user_user AS U ON U.user_contractID=B.contract_contractID LEFT JOIN t_user_finance AS F ON F.finance_contractID=B.contract_contractID ORDER BY FIELD(B.contract_status, ‘待审批’, ‘初审通过有疑点’, ‘初审通过无疑点’, ‘家访结束’, ‘电访结束’, ‘待放款’, ‘已放款’, ‘贷后管理’, ‘待补件’, ‘初审未通过’, ‘复审未通过’, ‘财务未通过’, ‘贷后未通过’)