我有如下表格:
id----image----type
1-----a.png----1
2-----b.png----1
3-----c.png----2
4-----d.png----1
5-----e.png----2
现在我想按以下顺序获取数据(首先输入 1,然后输入 2,然后输入 1,依此类推):
1-----a.png----1
3-----c.png----2
2-----b.png----1
5-----e.png----2
4-----d.png----1
那么如何实现呢?
到目前为止我有以下查询:
SELECT
*
FROM `table`
WHERE (TYPE =1 OR TYPE =2)
ORDER BY TYPE
最佳答案
例如
Select x.* from mytable x
join mytable y on y.type =x.type and y.id <= x.id
group by x.id
order by count(*),x.type
或更快 - 我认为 @1000111 试图达到...
SELECT x.id
, x.image
, x.type
FROM
( SELECT a.*
, CASE WHEN @prev = type THEN @i:=@i+1 ELSE @i:=1 END rank
, @prev := type
FROM your_table a
, (SELECT @i:=0, @prev:=null) vars
ORDER
BY type
, id
) x
ORDER
BY rank
, type;
关于mysql - 如何在Mysql中同时获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39384715/