[wp-trac] [WordPress Trac] #24093: WP_Meta_Query is inefficient when referencing the same keys in "OR" query
    WordPress Trac 
    noreply at wordpress.org
       
    Sun Apr 13 06:32:00 UTC 2014
    
    
  
#24093: WP_Meta_Query is inefficient when referencing the same keys in "OR" query
-------------------------------------------------+-------------------------
 Reporter:  sc0ttkclark                          |       Owner:
     Type:  enhancement                          |      Status:  new
 Priority:  normal                               |   Milestone:  Awaiting
Component:  Query                                |  Review
 Severity:  normal                               |     Version:  3.5.1
 Keywords:  needs-refresh meta-query needs-      |  Resolution:
  unit-tests needs-patch                         |     Focuses:
-------------------------------------------------+-------------------------
Comment (by Mr.Defi):
 kevinfodness Your modification works fantastic when You need to query thru
 multiply meta_keys but it breaks order_by meta_key statment.
 Here is my $args fot WP_Query
 {{{
 $args = array(
         'post_type' => 'szkolenia',
         'posts_per_page' => -1,
         'meta_key' => 'crs_date_from',
         'orderby'  => 'meta_value',
         'order' => 'ASC'
 );
 }}}
 This is how mysql query looks after Your patch:
 {{{
 wp_posts.* FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'szkolenia'
 AND (wp_posts.post_status = 'publish' OR wp_posts.post_author = 18 AND
 wp_posts.post_status = 'private') AND (wp_postmeta.meta_key =
 'crs_date_from' ) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value ASC
 }}}
 and before patch:
 {{{
 wp_posts.* FROM wp_posts  INNER JOIN wp_postmeta ON (wp_posts.ID =
 wp_postmeta.post_id) WHERE 1=1  AND wp_posts.post_type = 'szkolenia' AND
 (wp_posts.post_status = 'publish' OR wp_posts.post_author = 18 AND
 wp_posts.post_status = 'private') AND (wp_postmeta.meta_key =
 'crs_date_from' ) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value ASC
 }}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/24093#comment:14>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
    
    
More information about the wp-trac
mailing list