我在 SQl 查询方面遇到问题。如下。
在特定字段中,记录仅由“A”和“B”组成。
现在,如果我想查找 2 条“A”记录,然后查找 2 条“B”记录,然后再查找 2 条“A”记录和 2 条“B”记录,依此类推,直到记录结束。
example output should be something like below.
ID Field
--------- -----
2 A
3 A
1 B
5 B
4 A
7 A
6 B
8 B
.........
.........
…………等等
请帮助我解决上述问题......因为我被这个查询困住了。
谢谢!
最佳答案
您可以通过枚举每个值的行,然后巧妙地对结果进行排序来完成此操作:
select id, field
from (select t.*,
if(field = 'A', @a_rn := @a_rn + 1, @b_rn := @b_rn + 1) as rn
from table t
(select @a_rn := 0, @b_rn := 0) vars
) t
order by (rn - 1) div 2, field;
关于mysql - 查找sql中每2个备用记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24344237/