Mysql 选择行并限制不同列

标签 mysql

表的结构如下

Posts (
   id int, 
   category_id int, 
   popularity int, 
)

我想选择 5 个类别,每个类别有 5 行。

Like Select * from posts where Category_id in ("1", "2", "3", "4", "5") limit 5 -- 通过选择 5 来限制每个 Category_id

最佳答案

使用 UNION 连接多个 select 语句以显示一个组合结果。
这可能是解决您的问题的最简单方法。

像这样:

SELECT * FROM posts where category_id=1 limit 5
UNION 
SELECT * FROM posts where category_id=2 limit 5
UNION 
SELECT * FROM posts where category_id=3 limit 5
UNION 
SELECT * FROM posts where category_id=4 limit 5
UNION 
SELECT * FROM posts where category_id=5 limit 5

同样的问题已经被问过: MySQL: Limiting number of results received based on a column value | Combining queries 它提供了更复杂的解决方案。

关于Mysql 选择行并限制不同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524865/

相关文章:

mysql - 多个外键引用一列给我错误

c# - 列不是 PK 时的 EF6 MySQL StrongTypingException

mysql - 更改mysql中外键引用的数据类型

mysql - 无法添加外键约束,Mysql错误1215

mysql - 为什么我在 NodeJS 中使用 MySQL 时需要连接互联网?

mysql - 如何连接到在azure中的linux虚拟机上运行的mysql服务器

MySQL : Slow show databases;

php - 存储 MD5 哈希或 NULL 的最佳 MySQL 数据类型

PHP多级授权

MySql select语句(select distinct)问题