✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como listar os posts mais votados em um ano usando SQL?

26

Neste post, aprendemos como usar o SQL para listar as postagens mais populares (de acordo com o número de comentários de cada postagem). Nesta postagem, obteremos algumas estatísticas básicas para as postagens em 2016 e também aprenderemos as 10 principais postagens classificadas pelas votações.

Número total de postagens

Com base neste SQL :

SELECT 
  count(1) 
FROM 
  wp_posts
WHERE 
  post_type = "post" and 
  post_status = "publish" and 
  date_format(post_date_gmt, "%Y") = "2016"

Sabemos que há 245 posts publicados em 2016.

+----------+
| count(1) |
+----------+
|      245 |
+----------+
1 row in set (0.01 sec)

Principais postagens mais discutidas

E com base no SQL, temos os posts mais comentados deste ano, ou seja, 2016.

SELECT 
  post_name, post_title 
FROM 
  wp_posts 
WHERE 
  post_type = 'post' and 
  post_status = 'publish' and
  date_format(post_date_gmt, "%Y") = '2016' 
ORDER BY
 comment_count DESC 
LIMIT 10

Conhecemos as 10 postagens mais discutidas (como as mais populares) em 2016. Altere o limite de 10 para permitir que mais postagens sejam exibidas, por exemplo, limite de 20.

+--------------------------------------------------------------------------------+------------------------------------------------------------------------+
| post_name                                                                      | post_title                                                             |
+--------------------------------------------------------------------------------+------------------------------------------------------------------------+
| cc-coding-exercise-convert-a-number-to-hexadecimal                             | C/C++ Coding Exercise - Convert a Number to Hexadecimal?               |
| dynamic-programming-how-many-ways-to-connect-the-pipes                         | Dynamic Programming - How many ways to connect the pipes?              |
| when-xx-evaluates-to-false-in-cc                                               | When x==x Evaluates to FALSE in C/C++?                                 |
| how-to-compute-sum-of-two-integers-without-plus-and-minus-operators            | How to Compute Sum of Two Integers without Plus+ and Minus- Operators? |
| how-to-find-intersection-of-two-arrays-in-c                                    | How to Find Intersection of Two Arrays in C++?                         |
| bit-manipulation-how-to-set-all-bits-between-i-and-j-in-n-equal-to-m-cplusplus | Bit Manipulation: How to Set All Bits Between i and j in N equal to M? |
| how-to-check-valid-anagram-in-cc                                               | How to Check Valid Anagram in C/C++?                                   |
| c-coding-exercise-number-of-1-bits-revisited                                   | C++ Coding Exercise - Number of 1 Bits (Revisited)                     |
| dynamic-programming-integer-break                                              | Dynamic Programming - Integer Break                                    |
| cc-coding-exercise-find-the-duplicate-number                                   | C/C++ Coding Exercise - Find the Duplicate Number                      |
+--------------------------------------------------------------------------------+------------------------------------------------------------------------+
10 rows in set (0.01 sec)

Estes são (no momento da redação):

  1. Exercício de codificação C/C++ – Converter um número para hexadecimal?
  2. Programação Dinâmica – Quantas maneiras de conectar os tubos?
  3. Quando x==x é avaliado como FALSE em C/C++?
  4. Como calcular a soma de dois inteiros sem operadores Plus+ e Minus-?
  5. Como encontrar a interseção de dois arrays em C++?
  6. Manipulação de bits: como definir todos os bits entre i e j em N igual a M?
  7. Como verificar o anagrama válido em C/C++?
  8. Exercício de codificação C++ – Número de 1 bits (revisitado)
  9. Programação Dinâmica – Interrupção de inteiros
  10. Exercício de codificação C/C++ – Encontre o número duplicado

Postagens mais votadas via SQL

Agora, podemos combinar as estatísticas de votação do GD Star Rating Plugin e obter outras classificações interessantes.

SELECT 
   `p`.`ID`, 
   `p`.`post_title` as `title`, 
   `visitor_votes` + `user_votes` as `total_votes`, 
   `visitor_votes`, 
   `user_votes`  
FROM  
  `wp_gdsr_data_article` as `da` 
INNER JOIN 
  `wp_posts` as `p` ON `da`.`post_id` = `p`.`ID` 
WHERE
  `p`.post_type = 'post' and 
  `p`.post_status = 'publish' and  
  date_format(`p`.`post_date_gmt`, "%Y") = '2016'
HAVING
  `total_votes` > 0
ORDER BY
  `total_votes` desc 
LIMIT 10

Isso dá os seguintes 10 posts mais votados do ano:

+------+----------------------------------------------------------------------------+-------------+---------------+------------+
| ID   | title                                                                      | total_votes | visitor_votes | user_votes |
+------+----------------------------------------------------------------------------+-------------+---------------+------------+
| 4793 | When x==x Evaluates to FALSE in C/C++?                                     |       105.0 |          95.0 |       10.0 |
| 4679 | How to Find the Maximum of Two Integers without Using Comparison Operator? |        81.0 |          81.0 |        0.0 |
| 4191 | How to Delete a Node from a Binary Search Tree?                            |        68.0 |          58.0 |       10.0 |
| 4380 | C++ Coding Exercise: How to Check if a Large Integer is divisible by 11?   |        67.0 |          57.0 |       10.0 |
| 4329 | Microsoft Interview Question - Get the Area of the Triangle                |        66.0 |          66.0 |        0.0 |
| 4740 | PPAP in C++ and Javascript for Beginner                                    |        62.0 |          52.0 |       10.0 |
| 4166 | How to Invert a Binary Tree in C/C++?                                      |        48.0 |          48.0 |        0.0 |
| 4176 | How to Reverse Bits for 32-bit Unsigned Integer in C/C++?                  |        46.0 |          46.0 |        0.0 |
| 4178 | C++ Coding Exercise - How to Find First Missing Number?                    |        40.0 |          40.0 |        0.0 |
| 4227 | Dynamic Programming - Integer Break                                        |        31.0 |          31.0 |        0.0 |
+------+----------------------------------------------------------------------------+-------------+---------------+------------+
10 rows in set (0.01 sec)
  1. Quando x==x é avaliado como FALSE em C/C++?
  2. Como encontrar o máximo de dois inteiros sem usar o operador de comparação?
  3. Como excluir um nó de uma árvore de pesquisa binária?
  4. Exercício de codificação C++: como verificar se um número inteiro grande é divisível por 11?
  5. Pergunta da entrevista da Microsoft – Obtenha a área do triângulo
  6. PPAP em C++ e Javascript para Iniciantes
  7. Como inverter uma árvore binária em C/C++?
  8. Como reverter bits para inteiro não assinado de 32 bits em C/C++?
  9. Exercício de codificação C++ – Como encontrar o primeiro número ausente?
  10. Programação Dinâmica – Interrupção de inteiros

Claro, você pode modificar as duas consultas SQL acima para que dê 12 posts, ou seja, um melhor para cada mês. Você só precisa agrupar por mês assim:

GROUP BY date_format(`p`.post_date_gmt, "%M")

E, também, você pode criar uma página PHP que forneça as tabelas de classificação mais atualizadas para os posts, mas o que foi mostrado aqui é estático, ou seja, a tabela de classificação é gerada como é hoje.

SQL

Fonte de gravação: helloacm.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação