2011-05-13 54 views
-1
 
+----+------------------+-----------------+ 
| id | template_type_id | url    | 
+----+------------------+-----------------+ 
| 1 |  1   | text   | 
| 2 |  2   | text   | 
| 3 |  1   | text   | 
| 4 |  1   | text   | 
| 5 |  1   | text   | 
| 6 |  1   | text   | 
| 7 |  1   | text   | 
| 8 |  1   | text   | 
| 9 |  2   | text   | 
| 10 |  2   | text   | 
+----+------------------+-----------------+ 

,因爲我使用1個模板和2頁面模板,我需要重新安排上述結果爲每1頁和第2頁如下:排序和分組MySQL數據

 
+----+------------------+-----------------+ 
| id | template_type_id | url    | 
+----+------------------+-----------------+ 
| 1 |  1   | text   | 
| 3 |  1   | text   | 
| 2 |  2   | text   | 
| 4 |  1   | text   | 
| 5 |  1   | text   | 
| 6 |  1   | text   | 
| 7 |  1   | text   | 
| 9 |  2   | text   | 
| 10 |  2   | text   | 
| 8 |  1   | text   | 
+----+------------------+-----------------+ 
 
+------------------------------------------+ 
    ---------------- ------------------ 
    |    | |     | 
    |    | |     | 
    |    | |     | 
    |    | |     | 
    
    |    | |     | 
    |    | |     | 
    |    | |     | 
    |    | |     | 
    |    | |     | 
    ---------------- ------------------ 
+------------------------------------------+ 
+3

第二個示例似乎並沒有被排序,除非有一些其他數據未顯示,這是排序規則的一部分。 – Alanyst

+0

我需要根據第二個結果按template_type_id對1個頁面模板和2個頁面模板進行分組。因爲您可以認爲publish_date已經存在並且第一個結果由它排序。 – jit

+0

您應該將publish_date數據添加到您的示例中,以便我們瞭解它是如何影響排序的。 – Alanyst

回答

0

假設有表中的publish_date列未顯示,其中的值與示例1和2中記錄的排序一致,我建議:

order by publish_date, template_type_id 
+0

沒有用...假設publish_date對於所有的我都是一樣的,我想一次顯示2頁。 ..表示兩個1頁或一個2頁模板at ime .. – jit

+0

那麼,第二個表的邏輯排序規則是什麼?你能用簡單的英文表達它,以便我們可以嘗試將它翻譯成SQL嗎? – Olaf

+0

我希望一次顯示2頁的雜誌。一次顯示兩個1頁模板或一個2頁模板。但是按照第二條中規定的順序。如果您檢查第一個和第二個結果的id列,您發現如果1個記錄是1個頁面模板,我想要獲取下一個1頁記錄,然後按照第二個記錄,因爲它是結果2中給出的兩個頁面模板。 – jit