ホームページ >バックエンド開発 >PHPチュートリアル >MySQLクエリステートメントの問題、緊急のリクエスト、ありがとうございます
テーブル A、フィールド A_SORT (int)、A_DATE (BIGINT)、それぞれ並べ替えと日付、タイムスタンプの日付
A_SORT A_DATE
0 1403172542
0 1403056816
0 1403172558
1 1403172594
2 140305632 3
4 1403056888
6 1402655021
5 1403056634
どうすればクエリして a_sort の昇順で表示できますが、0 は昇順に参加せず、日付による降順になります。
select * from a order by a_sort>0 asc,a_date desc と書きましたが、
select * from a order by a_sort!=0 asc,a_date desc
このステートメントはどのように書けばよいでしょうか? ?
ディスカッションに返信 (解決策)
a_sort = 0, a_sort, a_date desc で順序から * を選択してください
昇順で a_sort を押すと、0 が最初にランク付けされます。あなたが望むのは、0 以外を昇順で最初に並べ替え、最後に 0 を並べ替えてから、逆順に並べ替えることです。
SELECT * FROM `a` order by a_sort>0 desc,a_sort asc, a_date desc;
0 no??昇順とはどういう意味ですか?
SELECT * FROM `a` order by a_sort>0 desc,a_sort asc, a_date desc;
0 no??昇順とはどういう意味ですか?
私が望む結果は、最初にゼロ以外の a_sort を表示し、ゼロ以外のものは asc でソートされ、残りは zero-a_sort で、これらは日付の降順で表示されます
a_sort a_date 1 1403172594 2 1403056323 4 1403056888 5 1403056634 6 1402655021 0 1403172558 0 1403172542 0 1403056816
select * from a order by if(a_sort != 0,1,0) desc, a_sort asc,a_date desc
2階と4階のものは大丈夫です 解決してくれてありがとうございます。 1階も大丈夫です、5階もございますのでよろしくお願いいたします。