Я пытаюсь создать оператор 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
), а затем сортировать по ней. Это то, что у меня есть до сих пор, но я не уверен, как выполнить вычисление в двух строках (все, что я нашел, - это вычисление между столбцами).
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 отдельные столбцы ... особенно если те являются всего 2 мета-ключа. Я думаю, что эти вещи типа мета-ключа должны использоваться только для более неясных «настроек» и поэтому вам не нужно будет запускать сложные запросы. – mpen
Ну, это схема Wordpress DB, которая должна быть достаточно общей, чтобы обрабатывать большинство пар ключевых значений для почти любых связанных с сообщением элементов. –
Конечно, он достаточно общий: он перебирает столбцы. Использование реальных столбцов все же было бы лучшим выбором, если это возможно. – 2009-12-01 18:33:54