sql >> Database teknologi >  >> RDS >> Mysql

Sortering af MYSQL Tag-tabel

OPDATERING:

Yderligere til den nye kommentar nedenfor:

( 
   SELECT     t.*, COUNT(*) AS tagcount
   FROM       tagged td
   LEFT JOIN  tags t ON (t.id = td.tag_id)
   GROUP BY   td.tag_id
   ORDER BY   tagcount DESC, t.title ASC
   LIMIT      3
) ORDER BY title ASC;
 

Resultat:

+------+------------+----------+ | id | title | tagcount | +------+------------+----------+ | 3 | javascript | 2 | | 1 | mysql | 2 | | 2 | php | 3 | +------+------------+----------+ 3 rows in set (0.00 sec)

Du skal blot ændre LIMIT 3 til LIMIT 10 for at få top 10 i stedet for top 3.

Forrige svar:

Hvorfor tilføjer du ikke en LIMIT 10 til din forespørgsel?

SELECT     t.*, COUNT(*) AS tagcount
FROM       tagged td
LEFT JOIN  tags t ON (t.id = td.tag_id)
GROUP BY   td.tag_id
ORDER BY   tagcount DESC, t.title ASC
LIMIT      10;
 

Testtilfælde:

CREATE TABLE tags (id int, title varchar(20));
CREATE TABLE tagged (tag_id int, post_id int);

INSERT INTO tags VALUES (1, 'mysql');
INSERT INTO tags VALUES (2, 'php');
INSERT INTO tags VALUES (3, 'javascript');
INSERT INTO tags VALUES (4, 'c');

INSERT INTO tagged VALUES (1, 1);
INSERT INTO tagged VALUES (2, 1);
INSERT INTO tagged VALUES (1, 2);
INSERT INTO tagged VALUES (2, 2);
INSERT INTO tagged VALUES (3, 3);
INSERT INTO tagged VALUES (2, 4);
INSERT INTO tagged VALUES (3, 4);
INSERT INTO tagged VALUES (4, 5);
 

Resultat (ved hjælp af LIMIT 3 ):

+------+------------+----------+ | id | title | tagcount | +------+------------+----------+ | 2 | php | 3 | | 3 | javascript | 2 | | 1 | mysql | 2 | +------+------------+----------+ 3 rows in set (0.00 sec)

Bemærk, hvordan [c] tag faldt ud af de øverste 3 resultater, og rækker er ordnet alfabetisk i tilfælde af uafgjort.



  1. PHP/PDO indsæt nuværende dato plus en måned i MYSQL

  2. Fejlfinding af SQL Server Always On Availability Groups

  3. Undgå PostgreSQL-deadlocks, når du udfører masseopdateringer og sletningsoperationer

  4. Virtualmin:Du har ikke adgang til denne MySQL-database efter at have skiftet adgangskode