【问题标题】:mysql, sort (roll) days in enum starting from 'today'mysql,从“今天”开始对枚举中的天数进行排序(滚动)
【发布时间】:2017-01-11 14:02:30
【问题描述】:

我有:

enum('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')<BR>

我希望能够排序,从 'today' 或 date(date_format(%a)) 开始

有没有办法解决枚举索引和类型的ROL? (对不起,那里有老式的汇编语言) 或者,首先在 PHP 中更容易做到吗? 目前我只有一个普通的

SORT BY students.day (the enum field)

【问题讨论】:

标签: php mysql sorting enums


【解决方案1】:

您可以像这样在 SQL 中执行此操作:

select * from sortday
order by 
   (myday + DAYOFWEEK(NOW())) MOD 7;

样本

mysql> select * from sortday;
+----+-------+----------------+
| id | myday | val            |
+----+-------+----------------+
|  1 | Mon   | Text from mo   |
|  2 | Tue   | text from Tue  |
|  3 | Wed   | Text from Wed  |
|  4 | Thu   | day Tue        |
|  5 | Fri   | this is friday |
|  6 | Sat   | its sat        |
|  7 | Sun   | ist sunday     |
+----+-------+----------------+
7 rows in set (0,00 sec)

mysql> select * from sortday order by (myday + DAYOFWEEK(NOW())) MOD 7;
+----+-------+----------------+
| id | myday | val            |
+----+-------+----------------+
|  3 | Wed   | Text from Wed  |
|  4 | Thu   | day Tue        |
|  5 | Fri   | this is friday |
|  6 | Sat   | its sat        |
|  7 | Sun   | ist sunday     |
|  1 | Mon   | Text from mo   |
|  2 | Tue   | text from Tue  |
+----+-------+----------------+
7 rows in set (0,00 sec)

mysql>

【讨论】:

  • 非常感谢。我为“myday”尝试了一个数字和“Fri”,但顺序相同。也许这是我设置它的方式,我没有结婚:
  • CREATE TABLE days` (daynum tinyint(1) NOT NULL auto_increment, day enum('Mon','Tue','Wed','Thu','Fri', 'Sat','Sun') NOT NULL, 主键 (daynum) ) INSERT INTO days VALUES(1, 'Mon');插入days VALUES(2, 'Tue');插入days VALUES(3, 'Wed');插入days 值(4,'星期四');插入days VALUES(5, 'Fri');插入days VALUES(6, 'Sat');`
猜你喜欢
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
相关资源
最近更新 更多