mysql - 如何在mysql中两次选择1个表中的同一列

标签 mysql

如何仅使用 1 个表选择 1 列两次,问题是我必须将 1 列分成 2 个返回

例如:表日志

TIMELOGS   11:00 , 12:12 , 13:00 , 17:01 , 17:05 , 17:10

TIMEMODE     0    ,   0     ,  0    ,   1    ,   1     ,   1

输出应该是

IN   11:00 , 12:12 , 13:00

OUT   17:01, 17:05 , 17:10

如何将这些组合到查询中

Select TIMELOGS as IN FROM table_logs where TIMEMODE = 0;

Select TIMELOGS as OUT FROM table_logs where TIMEMODE = 1; 

最佳答案

如果我理解正确的话,您想要枚举 0 和 1,然后按其分组:

select max(case when mode = 0 then time end),
       max(case when mode = 1 then time end)
from (select l.*,
             (@rn := if(@m = mode, @rn + 1,
                        if(@m := mode, 1, 1)
                       )
             ) as rn
      from logs l cross join
           (select @rn := 0, @m := -1) params
      order by mode, time
     ) l
group by rn;

关于mysql - 如何在mysql中两次选择1个表中的同一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113330/

相关文章:

mysql - 在正确的日期更改 SQL 结构

php - 为什么此代码生成的随机代码有时存储为 7 位数字而不是 8 位数字

mysql - 如何从 MSSQL 中的行中没有特定值的表中选择数据

php - 可以在 PHP 中将大型 csv 文件编写为 xls 表吗?

mysql - 从 MySQL 中的查询(而非表)中选择或返回 "field"名称

sql - 如何在表中找到所有不同的一对值

php - 根据用户上次查看获取每个主题的新帖子数

html - 在不影响页面设计的情况下在html页面上显示从mysql接收到的数据

PHP - 将 PDO 与 IN 子句数组一起使用

mysql - 时间戳默认值与 current_timestamp 不同