我试图创建一个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