我有一个包含id
和store_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
你能帮我解决这个问题吗?如果您需要任何其他细节,请随时提出,谢谢
答案 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