MySQL - 为每个X行选择1

时间:2013-02-03 18:14:32

标签: mysql database where

我有一个包含idstore_id等字段的数据库。 id是AI,store_id是0到7之间的int。

我的目标是为每2行选择1例,所以我得到行id = 0,id = 2,id = 4 ..等我可以这样做:

SELECT * FROM `table` WHERE MOD(id,2)=0

但我的问题是我store_id,因为我希望每x行获得1 WHERE store_id=y

你能帮我解决这个问题吗?如果您需要任何其他细节,请随时提出,谢谢

1 个答案:

答案 0 :(得分:1)

起初:

SELECT * FROM table WHERE MOD(id, 2) = 0 AND store_id = y

似乎有一个想法,但是如果所有“store_id = y”都有奇怪的ID呢?

那么,如何运行子查询来应用过滤器,向结果添加计数器,然后过滤计数器:

set @counter = 0;
SELECT id, store_id FROM
(
    SELECT id, store_id,
    @counter := @counter + 1 as counter
    FROM foo WHERE store_id = 2
) AS sub
WHERE MOD(counter, 2) = 0