sql >> Databáze >  >> RDS >> Mysql

Třídění tabulky značek MYSQL

AKTUALIZACE:

Dále k novému komentáři níže:

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

Výsledek:

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

Jednoduše změňte LIMIT 3LIMIT 10 získat top 10 místo top 3.

Předchozí odpověď:

Proč nepřidáte LIMIT 10 na váš dotaz?

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;

Testovací případ:

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

Výsledek (pomocí LIMIT 3 ):

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

Všimněte si, jak [c] tag vypadl ze 3 nejlepších výsledků a v případě shody jsou řádky seřazeny podle abecedy.



  1. Automatické odstranění data/času záznamu MSSQL

  2. Hodnoty oddělené čárkou s dotazem SQL

  3. Připojte se ke vzdálené databázi MySQL přes SSH pomocí Java

  4. Dotaz MySQL pro výběr výsledků s automatickým přírůstkem jako nový sloupec přidaný do výsledku