好的,所以我已經經歷了14次我寫這個問題時建議的Stack Overflow建議,並且我已經嘗試了所有內容,並且無法弄清楚這一點。按多列對MYSQL結果排序
我有一個評論健身房目錄。我有一個腳本,您可以通過郵政編碼,城市/州或街區/城市/州搜索這些健身房。
我在後端和數據庫中有幾個字段。有關這個問題的優先權(我給它一個數字1+,它應該顯示最高首先或最低首先我不在乎哪些最好從最高到最低),照片(它可以有5張照片),會員包括(一幾件事情,健身房可以在會員包括)和評論(不可編輯,但保持的健身房多少審查計數)
我想在這個順序
排序如果健身房有優先權,它應該先顯示優先順序。空優先級應該是最後一個,然後按照照片排序並不重要a-z z -a只是null最後一個,然後按成員資格排序包括null最後一個,然後按檢查數排序0或最後一個空。
因此,如果我有4個健身房,A和B有優先權,照片和會員資格,但是有0個評論,C沒有優先權,沒有照片,沒有成員資格,但最高評論數是2,而D沒有優先權,照片和成員,但1條:應該排序順序:
GYM Priority Photo Membership Reviews
A yes has some has count 0
B yes has some has count 0
C no no no memb. 2
D no has some has count 1
預期的排序結果:ABDC
對不起這就是混亂的。
繼承人什麼,我已經嘗試過:
SELECT * FROM (SELECT * FROM gym WHERE (city = "Queens") AND (state = "NY") GROUP BY priority ORDER BY photo, member_includes, reviews DESC) x LIMIT 0, 150
SELECT * FROM (SELECT * FROM gym WHERE (city = "Queens") AND (state = "NY") ORDER BY priority, photo, member_includes, reviews DESC) x LIMIT 0, 150
SELECT * FROM (SELECT * FROM gym WHERE (city = "Queens") AND (state = "NY") GROUP BY photo, member_includes, reviews ORDER BY priority DESC) x LIMIT 0, 150
SELECT * FROM gym WHERE (city = "Queens") AND (state = "NY") GROUP BY photo, member_includes, reviews ORDER BY priority DESC LIMIT 0, 150
SELECT * FROM gym WHERE (city = "Queens") AND (state = "NY") ORDER BY priority, photo, member_includes, reviews DESC LIMIT 0, 150
我已經嘗試了所有其他類型的組合使用和不使用ASC但仍沒有正確排序。我不知道我做錯了什麼。
請幫忙!
謝謝, 大衛
你提到的多個值,如照片和成員包括容易混淆。例如,有多張照片的健身房有多個記錄?你能[用一些虛擬數據創建一個小提琴](http://sqlfiddle.com/),讓我們看看實際的數據和數據庫結構是怎樣的? – inhan
對不起!必須起飛幾天。我沒想過創造一個小提琴。下次雖然:) –