Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql изберете вътрешно присъединяване с ограничение

Можете да използвате заявка за ранг mysql няма функции за прозорец за този тип резултати, за да получите n записа на група, няма да предложа group_concat решение, защото като articles термините казват, че може да има достатъчно данни и лесно да преминете ограничението за ограничение от 1024 знака, ако увеличите това ограничение, то също има зависимост от max_allowed_packet също

SELECT * FROM (
SELECT *,
@r:= CASE WHEN @g = c.id THEN @r +1 ELSE 1 END rownum,
@g:= c.id catgroup
 FROM category c
 JOIN articles a ON (c.id = a,category_id)
CROSS JOIN (SELECT @g:=0,@r:=0) t2
ORDER BY c.id , a.`date` desc
) t
 WHERE rownum <= 5

По-горе ще класира всяка статия в нейната група от категории, можете да видите резултата от rownum псевдоним и във външната заявка просто филтрирайте резултатите от статиите до 5 за група категория



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сумирайте стойностите на колона въз основа на група стойности от друга колона

  2. Каква библиотека на python 3 трябва да използвам за MySQL?

  3. Mysql пълнотекстово булево търсене - сортиране по уместност и още едно поле

  4. Стойността на предишния ред трябва да бъде извлечена

  5. MySQL и HBase свързаност