提问者:小点点

Mysql选择查询“Order By”未按预期返回结果


我们有客户的主桌。 我想在一个下拉列表中显示所有客户的列表。 但是,我想要一个客户即“一般”在名单的顶端。 我使用了以下查询。

SELECT * FROM `client` ORDER BY FIELD(`CLIENT_NAME`,'General')

Query返回结果,但General不是结果列表中的第一个记录。 我又问了几个问题,但没有运气。

SELECT * FROM `client` ORDER BY FIELD(`CLIENT_NAME`,'General') ASC

SELECT * FROM `client` ORDER BY `CLIENT_NAME`,FIELD(`CLIENT_NAME`,'General')

SELECT * FROM `client` ORDER BY `CLIENT_NAME`,FIELD(`CLIENT_NAME`,'General') ASC

我修复了,优化了,检查了表但没有任何区别。 以上所有查询都返回结果。 所以,我不太清楚,这个怎么调试?

问题是否与服务器上的MySQL版本有关? 还是问题出在MySQL本身? 我们的服务器上有MySQL5.0。

谢谢,桑迪普


共1个答案

匿名用户

你就快到了,你需要的是:

SELECT * FROM `client` ORDER BY FIELD(`CLIENT_NAME`,'General') DESC, `CLIENT_NAME`

这将首先按名称是否为“General”排序,然后按客户端名称排序。