Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giới hạn Mysql với trong câu lệnh

Bạn có thể sử dụng truy vấn xếp hạng để đưa ra xếp hạng cho từng danh mục và lọc nó với số lượng bản ghi mong muốn của bạn cho mỗi danh mục bên dưới truy vấn sẽ cung cấp cho bạn 6 bản ghi từ mỗi danh mục

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 ::chèn vào bảng, dữ liệu từ bảng khác?

  2. Thiết kế cơ sở dữ liệu:3 loại người dùng, riêng biệt hay một bảng?

  3. Tìm hiểu cách nhập dữ liệu Excel vào cơ sở dữ liệu MySQL

  4. MySQL:Đặt thành giá trị mặc định khi cập nhật

  5. MySQL với C #, theo quan điểm của nhà phát triển PHP