我試圖創建一個MySQL語句,它將按照語句本身內計算的值進行排序。我的表是這樣的:MySQL按2行的計算值排序
posts
+----+-----------+--------------+
| ID | post_type | post_content |
+----+-----------+--------------+
| 1 | post | Hello |
| 2 | post | world |
+----+-----------+--------------+
postmeta
+---------+----------+------------+
| post_id | meta_key | meta_value |
+---------+----------+------------+
| 1 | price | 50 |
| 1 | retail | 100 |
| 2 | price | 60 |
| 2 | retail | 90 |
+---------+----------+------------+
我想排序它來計算節約值調用(.5
爲ID=1
,.3
爲ID=2
)即可。這是我迄今爲止,但我不知道如何做2行計算(我發現的一切是關於計算列之間)。
SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'Price'
AND wposts.post_type = 'post'
ORDER BY wpostmeta.meta_value DESC
感謝您的幫助!
我知道這沒有什麼幫助,但是如果你負責數據庫,你應該重組它,這樣'價格'和'零售是分開的兩列......特別是如果那些是隻有2個元鍵。我認爲這些元鍵類型的東西應該只用於更晦澀的「設置」,這樣你就不需要運行復雜的查詢。 – mpen 2009-12-01 06:58:15
好吧,這是wordpress數據庫模式,應該足夠通用,可以處理大多數關鍵值對,幾乎可以處理任何與帖子相關的項目。 – 2009-12-01 08:15:50
當然它足夠通用:它重新實現列。如果可能的話,使用真實列將仍然是更好的選擇。 – 2009-12-01 18:33:54