我已经按照时间戳排序了啊 为什么结果还不是顺序的
SELECT amiba_back,soft_back,soft_sell,RIGHT(amiba_preset_title,5) AS amiba_date FROM dwh_amiba_show WHERE
(amiba_preset_title LIKE '当前达成|云安全|2021-09-%' OR amiba_preset_title LIKE '当前达成|一朵云|2021-09-%'
OR amiba_preset_title LIKE '当前达成|云运维|2021-09-%' OR amiba_preset_title LIKE '当前达成|云架构|2021-09-%'
OR amiba_preset_title LIKE '当前达成|云交付|2021-09-%'
OR amiba_preset_title LIKE '当前达成|金融云|2021-09-%') ORDER BY STR_TO_DATE(amiba_date, '%m-%d') ASC;
amiba_date字段到底是什么类型啊?是时间类型还是字符串类型?
你先把sql在mysql客户端里执行,没问题了再放进代码里
你前台控件用的是什么,它是不是设置了排序?
还有,既然你想按时间排序,直接order by amiba_date就可以,asc也不用写,默认就是从小到大,需要倒序时再加desc
时间本身是二进制存放的,可以保证旧的时间比新的时间小,转成字符串排序反而容易出bug
你函数没用正确,返回的都是 NULL
mysql> select STR_TO_DATE('09-18', '%m-%d');
+-------------------------------+
| STR_TO_DATE('09-18', '%m-%d') |
+-------------------------------+
| NULL |
+-------------------------------+
1 row in set, 1 warning (0.01 sec)