首页 > 解决方案 > MySQL 限制选择语句

问题描述

这是一个示例表:

+--------+------------+
| itemID | itemvalue  |
+--------+------------+
|      1 |          a |
|      2 |          b |
|      3 |          a |
|      4 |          a |
|      5 |          b |
|      6 |          a |
|      7 |          b |
|      8 |          a |
|      9 |          a |
|     10 |          b |
+--------+------------+

我想知道表格的前 5 行中有多少个“a”。所以在文字中应该做到以下几点:

仅选择表 X WHERE itemvalue = a的前 5 行

这应该返回第 1、3 和 4 行

是否可以仅使用 Mysql 查询而不进行进一步计算来做到这一点?

标签: mysql

解决方案


您可以尝试使用内部联接查询来执行此操作

select t1.* from my_table t1
join
(select itemId from my_table order by itemId limit 5) t2
on t1.itemID=t2.itemID
where t1.itemvalue='a'

工作演示


推荐阅读