Compare two numeric custom fields

I think something like this, but not tested, and my SQL-foo is rather weak:

    $test = $wpdb->get_col( $wpdb->prepare(
    "
    SELECT DISTINCT    $wpdb->posts.*
    FROM               $wpdb->posts
    INNER JOIN         $wpdb->postmeta AS mt1 ON (
         wp_posts.ID = $wpdb->postmeta.post_id
    )
    WHERE              $wpdb->postmeta.meta_key = 'goals-made'
    AND(               mt1.meta_key = 'goals-against'
        AND            CAST($wpdb->postmeta.meta_value AS INT) > CAST(mt1.meta_value AS INT)
    )

    "
));

This should return a list of post_ids that you can then process. But then again, it might just fail miserably.

Leave a Comment