mysql - 如何在Mysql中同时获取数据

标签 mysql

我有如下表格:

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;

http://sqlfiddle.com/#!9/3e27c/8

关于mysql - 如何在Mysql中同时获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39384715/

相关文章:

php - 在所有数据库mysql中用另一个字符串替换一个字符串

mysql - 使用 count 和 if 的左连接和聚合函数

mysql - Orchard 中的后台运行功能

mysql - 导入 CSV 从现有表中提取一列字段

c# - 如何从 Gridview 导出到 Excel

javascript - 谷歌图表 mysql PHP

mysql - Qt MySQL -------- 无法打开包含文件 : 'mysql.h' :

mysql - 突出显示表 html 中的一行,该行的值超过平均值

c# - 如何使用 EntityFramework 调用存储过程?

php - 如果我想开发一个新的 "registration and login"方法,我应该使用什么编程语言?