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

Mysql ограничение с в изявление

Можете да използвате заявка за ранг, за да дадете ранг за всяка категория и да го филтрирате с желания брой записи за категория, под заявката ще ви даде 6 записа от всяка категория

SELECT t.* FROM
(SELECT 
  `user_bookmarks`.`id` AS `user_bookmark_id`,
  `bookmark_id`,
  `user_bookmarks`.`user_id`,
  `bookmark_url`,
  `bookmark_website`,
  `bookmark_title`,
  `bookmark_preview_image`,
  `bookmark_popularity`,
  `category_id`,
  `category_name`,
  `pdf_txt_flag`,
  `youtube_video`,
  `content_preview`,
  `snapshot_preview_image`,
  `mode` ,
   @r:= CASE WHEN category_id = @g THEN @r+1  ELSE @r:=1 END `rank` ,
   @g:=category_id
FROM
  `user_bookmarks` 
  LEFT JOIN `bookmarks` 
    ON `user_bookmarks`.`bookmark_id` = `bookmarks`.`id` 
  LEFT JOIN `categories` 
    ON `user_bookmarks`.`category_id` = `categories`.`id` 
  JOIN (SELECT @r:=0,@g:=0) t1
WHERE `category_id` IN (164, 170, 172) 
ORDER BY category_id
) t
WHERE t.rank <=6


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вграждане на mysql в java настолно приложение

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

  3. ПОРЪЧАЙ ПО дата с минали дати след предстоящи дати

  4. Оптимизиране на MySQL заявка за търсене в целочислен диапазон

  5. Свързване на Ms Access Db към Mysql чрез Vba