0

アイテムのリストをアルファベット順に返したいのですが、「空の」結果が最初に表示されるのではなく、最後に追加されます。MySQL ORDER ステートメント、またはおそらく別の方法を使用してこれを行う方法はありますか?

SELECT * FROM persons WHERE status = 'active' ORDER BY lastName;

私が得るもの:

Jason
Peter
Frank Asimov
Reda Banks
Scott Sorrel

私が欲しいもの:

Frank Asimov
Reda Banks
Scott Sorrel
Jason 
Peter
4

3 に答える 3

1
 SELECT * FROM persons WHERE status = 'active' 
 ORDER BY case when ifnull(lastName,'') = '' then 1 else 0 end, lastname
于 2012-11-08T19:32:35.313 に答える
0

FIELD ステートメントを使用して実行できます。次のようになります。

SELECT [...] ORDER BY FIELD(lastName, '') DESC

これにより、すべての空の文字列の姓が末尾に追加されます。空の文字列の代わりに、データベースに NULL がある場合:

SELECT [...] ORDER BY FIELD(lastName, NULL) DESC;
于 2012-11-08T19:34:29.977 に答える
-1

ORDER BY必要なのは次のことだけだと思いますfirstName

SELECT * FROM persons WHERE status = 'active' ORDER BY lastName, firstName
于 2012-11-08T19:28:07.190 に答える