嗨,我有一些文件记录,其编号如01 / 2020、02 / 2020以此类推,并且我使用order by子句按这些数字顺序获取记录,但它正确地从01/2020返回到10/2020,然后它告诉我100/2020是否有解决方案?请与我分享。

最佳答案

如果我的假设是正确的,因此该记录的格式为running_no/year,那么您需要提取年份以包括在内。考虑下面的例子。

如果数据是这样的:

+----------+
|   Value  |
+----------+
| 01/2020  |
| 02/2020  |
| 10/2020  |
| 100/2020 |
| 01/2021  |
| 10/2021  |
+----------+


后面的4位数字代表运行年份,那么您可以通过几种方式从中提取年份。在这里,我展示了两个使用RIGHT()SUBSTRING_INDEX()的示例。

example 1:
SELECT * FROM table ORDER BY RIGHT(Value,4) ASC, ABS(Value) ASC;

example 2:
SELECT * FROM table ORDER BY SUBSTRING_INDEX(Value,'/',-1) ASC, SUBSTRING_INDEX(Value,'/',1) ASC;


只要可以确定它将以您想要的方式返回结果,还有更多方法可以实现此目的。

关于php - 如何使用order by子句来正确获取记录,数据格式为01/2020,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60034480/

10-11 13:00