我的表:自定義排序在PHP/MySQL的
6 2/3/2013 row1
10 2/2/2013 row2
1 1/3/2013 row3
2 1/3/2013 row4
如果COLUMN1具有價值(列2將是空的)排序行與欄3。 僅對第1列中具有值的行進行排序,而不對第2列中具有值的行進行排序。
如果column2的值(column1將爲空)按column2排序。 僅對列2中具有值的行進行排序,而不對列1中具有值的行進行排序。
排序:
第一次迭代:
First column column1 row1 is empty and column2 has value so comparing row1 and row3, 1 is minimum so is in top.
1 1/2/2013 row1
10 2/2/2013 row2
6 2/3/2013 row3
2 1/3/2013 row4
第二次迭代:
First column column1 row2 is there so it comparing row2 and row4 for column3 date 1/3/2013 < 2/2/2013 so swap .
1 1/2/2013 row1
2 1/3/2013 row2
6 2/3/2013 row3
10 2/2/2013 row4
第三次迭代:
First column column1 row3 is empty in first column so and comparing column2 since 1 < 6 so no changes.
1 1/2/2013 row1
2 1/3/2013 row2
6 2/3/2013 row3
10 2/2/2013 row4
第四次迭代:
First column column1 row4 is there so it comparing row2 and row4 for column3 date 1/3/2013 < 2/2/2013 so nothing.
1 1/2/2013 row1
2 1/3/2013 row2
6 2/3/2013 row3
10 2/2/2013 row4
Final Result After Sorting:
1 1/2/2013 row1
2 1/3/2013 row2
6 2/3/2013 row3
10 2/2/2013 row4
在PHP/mysql中有很好的方法嗎?
我試着用PHP排序功能找不到解決方案。
謝謝。
並且您是否想要保留具有第2列的行? –
是在第2列和第1列都 – lil
我不認爲有一種有效的方式(或任何方式)只有在SQL中獲得這種排序。我可能會採取PHP路線。但是,那麼應該沒有困難,你已經非常清楚地描述了你的算法,這是什麼問題? – RandomSeed