如何解决如何对三列的日期排序并获取所有这些行的行?
我有一个像这样的MySQL表。
|------------------------------------------------------------------------------|
| NAME | DateType | date1 | date2 | date3 |
|------------------------------------------------------------------------------|
| Joe Bloggs | d1 | 21-09-2020 | 00-00-0000 | 00-00-0000 |
| Bob Bobbing | d3 | 00-00-0000 | 23-11-2020 | 21-09-2010 |
| etc... ----------------------------------------------------------------------|
我想要的是,将这些日期合并,排序并获得如下结果:
|-------------------------------------------------|
| NAME | DateType | date |
|-------------------------------------------------|
| Joe Bloggs | d1 | 21-09-2020 |
| Bob Bobbing | d3 | 23-11-2020 |
| Bob Bobbing | d3 | 21-09-2010 |
| etc... -----------------------------------------|
或者类似这样的东西,得到列名:
|----------------------------------------------------------------|
| NAME | DateType | column | date |
|-------------------------------------------------|--------------|
| Joe Bloggs | d1 | date1 | 21-09-2020 |
| Bob Bobbing | d2 | date2 | 23-11-2020 |
| Bob Bobbing | d3 | date3 | 21-09-2010 |
| etc... --------------------------------------------------------|
解决方法
您想在将所有0
日期过滤掉的同时,将列取消透视成行。在MySQL中,最好的选择可能是union all
:
select name,datetype,'date1' which_col,date1 as date from mytable where date1 > '0000-00-00'
union all select name,'date2',date2 from mytable where date2 > '0000-00-00'
union all select name,'date',date3 from mytable where date3 > '0000-00-00'
order by name,date
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。