从SQL查询(wordpress $ wpdb)返回总行数,忽略限制

时间:2018-06-20 10:47:24

标签: mysql wordpress

在Wordpress中是否可以忽略限制而从$ wpdb-> get_results返回结果总数?

示例:

$datas = $wpdb->get_results("
  SELECT DISTINCT wp_posts.ID, wp_posts.post_title, wp_posts.post_excerpt FROM wp_posts
  INNER JOIN wp_postmeta ON
    wp_posts.ID = wp_postmeta.post_id
    WHERE (
            wp_posts.post_title LIKE '%hello%' OR
            wp_postmeta.meta_value LIKE '%hello%'
          )
          AND wp_posts.post_status = 'publish'
          AND wp_posts.post_type IN ('post', 'page')

    ORDER BY wp_posts.post_date DESC
    LIMIT 0, 24
", ARRAY_A);

还是我需要运行两个查询,一个查询的总数为count(*),然后另一个查询为上述查询,以获取实际的帖子内容?

1 个答案:

答案 0 :(得分:2)

您可以在选择查询中包括SQL_CALC_FOUND_ROWS选项:

SELECT SQL_CALC_FOUND_ROWS ...

然后立即调用FOUND_ROWS()

SELECT FOUND_ROWS();

但是,由您自己来比较使用SQL_CALC_FOUND_ROWS选项运行单独查询的执行时间。有时前者要胜过后者。