我有如下表:這應該是什麼正確的MySQL查詢?
id name priority urgency output
1 mark 0 0 A
2 mark 0 1 B
3 mark 0 0 C
4 erik 0 0 D
5 erik 0 0 E
我想增加在列表中具有最高緊迫性的進入每個名稱,或者最古老的之一,如果有相等緊迫問題清單的優先級。在此之後,我希望列表中每個名稱具有最高優先級的條目。因此,在第一次運行後的表應該是這樣的:
id name priority urgency output
1 mark 0 0 A
2 mark 1 1 B
3 mark 0 0 C
4 erik 1 0 D
5 erik 0 0 E
什麼,然後我從數據庫中想要的是與每個名稱優先級最高的環節,所以這一點:
id name priority urgency output
2 mark 1 1 B
4 erik 1 0 D
是否有某人在那裏知道如何做到這一點?
的這個缺點是,每個名字會把它弄的自己的查詢。在我的例子中有兩個名字,但是在實際的數據庫中有3227個名字...... – patrick 2012-03-19 17:33:22
在你的問題中沒有提到這個約束。在實踐中,這些查詢的性能至關重要嗎?你是通過網絡請求還是離線進行此操作?如果你是用cron來做的話,那麼它花費10秒(而不是一秒鐘)就可以適用於你的用例。 – halfer 2012-03-19 17:43:34
(順便說一下,3227條記錄並不多,試試看我的方式,看看它需要多長時間 - 即使對於服務器非常低的情況,這些查詢也是微不足道的)。 – halfer 2012-03-19 17:46:47