sql >> Database >  >> RDS >> Mysql

Haal 2 laatste berichten op voor elke categorie

Bekijk deze MySQL-artikel over hoe te werken met de top N dingen in willekeurig complexe groeperingen; het is goed spul. Je kunt dit proberen:

SET @counter = 0;
SET @category = '';

SELECT
  *
FROM
(
  SELECT
    @counter := IF(posts.category = @category, @counter + 1, 0) AS counter,
    @category := posts.category,
    posts.*
    FROM
      (
      SELECT
        *
        FROM test
        ORDER BY category, date DESC
      ) posts
) posts
HAVING counter < 2


  1. Hoe u uw database kunt comprimeren zodat deze sneller werkt?

  2. Externe sleutel die verwijst naar meerdere tabellen

  3. MYSQLI::prepare() , fout bij gebruik tijdelijke aanduiding :iets

  4. MySQL:Waarom VARCHAR(20) gebruiken in plaats van VARCHAR(255)?