0

2 つのテーブルがあり、一方のテーブルから値を取得し、もう一方のテーブルの値の合計で並べ替えようとしています。

クリアするために、メタキーが反応%のようなメタキーの合計ですべての投稿の順序のリストを取得しようとしています

これが私が試したものです

ORDER BY ( SELECT SUM(CAST(meta_value AS UNSIGNED)) as count FROM `wp_postmeta` WHERE `meta_key` LIKE '_reaction_button%' GROUP BY post_id )

しかし、残念ながらそれはうまくいきません。これに対する解決策はありますか。これは、ビューまたはストアド プロシージャを使用して実行できると思いますが、その方法を理解してください。

実際、私はワードプレスを使用し、query_posts を使用して投稿を取得していますが、query_posts または WP_Query ではこれを実行できないように思われるため、カスタム クエリを作成しています。これが query_posts または WP_Query で実行できる場合、それは本当に素晴らしいことです。

これが私のメインテーブルです

post_id が最初のテーブルへの外部キーである別のテーブル

4

3 に答える 3

0

そのために直接mysqlを実際に必要としない場合は、WP_Queryを使用できます

$query = new WP_Query( array ( 
                             'post_type' => 'post', 
                             'meta_key' => 'vote_field', 
                             'orderby' => 'meta_value', 
                             'order' => 'ASC' ) );

meta_compareまたはを使用することもできます

'meta_key' => 'metadata1',
'orderby' => 'meta_value_num'

次に、'compare' => 'LIKE'またはを使用することもできます'compare' => 'NOT LIKE'

または、この例をここで見ることができます: Wordpress Sum meta_values from posts カテゴリごとに並べ替え、カテゴリを必要なものに変更します..

于 2013-04-13T09:21:35.027 に答える