sql >> Database >  >> RDS >> Mysql

MYSQL Tag-tabel sorteren

UPDATE:

Naar aanleiding van de nieuwe opmerking hieronder:

( 
   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;

Resultaat:

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

Verander eenvoudig de LIMIT 3 tot LIMIT 10 om de top 10 te krijgen in plaats van de top 3.

Vorige antwoord:

Waarom voeg je geen LIMIT 10 toe op uw vraag?

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;

Testgeval:

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);

Resultaat (met behulp van LIMIT 3 ):

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

Merk op hoe de [c] tag viel uit de top 3 resultaten, en rijen worden alfabetisch geordend in het geval van een gelijkspel.



  1. Ad-hoc verbindingsreeksen en heterogene query's voor MS Access

  2. Exporteer het resultaat van de opgeslagen procedure naar Excel in SSMS

  3. Samengestelde sleutels toewijzen met eerst EF-code

  4. Php aanroepen van sqlserver back-up databasescript, back-upbestand gemaakt en vervolgens verwijderd