Задать вопрос
Ответы пользователя по тегу SQL
  • Как посчитать какая по счету запись в базе mysql, при условии и сортировки?

    gikami
    @gikami Автор вопроса
    web программист
    Мой вариант, но подсчитывает не оч точно, из-за критерий. Не уверен на счет производительности.
    SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
    FROM wp_posts
    INNER JOIN wp_postmeta
    ON (wp_posts.ID = wp_postmeta.post_id )
    INNER JOIN wp_postmeta AS mt1
    ON ( wp_posts.ID = mt1.post_id )
    INNER JOIN wp_postmeta AS mt2
    ON ( wp_posts.ID = mt2.post_id )
    WHERE 1=1
    AND ( wp_postmeta.meta_key = '_wpcr_rating_stars_count'
    AND mt1.meta_key = '_wpcr_rating_stars_avg'
    AND mt2.meta_key = 'post_views_count' )
    AND wp_posts.post_type = 'book'
    AND wp_posts.post_status = 'publish'
    
    GROUP BY wp_posts.ID
    ORDER BY wp_postmeta.meta_value DESC, mt1.meta_value DESC, mt2.meta_value  DESC

    foreach( $pageposts as $postnum ){
    	$i++;
    	if($postnum->ID == $id){
    		 break;
    	}
    }

    Если есть другие варианты, отпишите пожалуйста.
    Ответ написан
    Комментировать