根据 Quassnoi 的回答,我已经编辑以显示使用他的建议会发生什么,并向 OID 添加字母以显示有问题的排序。
我在 mysql 数据库中有一个表,我首先想在它应该添加到数据库的日期之前对其进行排序。
SELECT * FROM table ORDER BY date_placed DESC;
接下来日期相同的地方我想通过自动递增的 id 进行排序。所以我添加了:
SELECT * FROM table ORDER BY date_placed DESC, id DESC;
我最终得到这样的结果:
日期_放置 | 身份证 | 标识 | AB 2012 年 5 月 1 日 | 1100 | A50 | 一种 2012 年 5 月 1 日 | 1109 | A50 | 乙 2012 年 5 月 1 日 | 1108 | B40 | 一种 2012 年 5 月 1 日 | 1107 | B40 | 乙 2012 年 4 月 1 日 | 1106 | C30 | 一种 2012 年 4 月 1 日 | 1105 | C30 | 乙
AB 字段将始终仅由 A 或 B 组成,并且 OID 可能存在两次或为唯一值。我现在想要的是在 OID 重复的情况下,B 在 AB 列中位于 A 之前。请注意,ID 将在一定程度上出现故障。
日期_放置 | 身份证 | 标识 | AB 2012 年 5 月 1 日 | 1109 | A50 | 乙 2012 年 5 月 1 日 | 1110 | A50 | 一种 2012 年 5 月 1 日 | 1107 | B40 | 乙 2012 年 5 月 1 日 | 1108 | B40 | 一种 2012 年 4 月 1 日 | 1105 | C30 | 乙 2012 年 4 月 1 日 | 1106 | C30 | 一种
我更喜欢在 mysql 端执行此操作,因为我将检索很多行。这可能吗?如果不在mysql中,那么我正在使用php,那么最好的方法是什么?提前感谢任何可以提供帮助的人。
Quassnoi 的回答是这样的:
日期_放置 | 身份证 | 标识 | AB 2012 年 5 月 1 日 | 1107 | B40 | 乙 2012 年 5 月 1 日 | 1108 | B40 | 一种 2012 年 5 月 1 日 | 1109 | A50 | 乙 2012 年 5 月 1 日 | 1110 | A50 | 一种 2012 年 4 月 1 日 | 1105 | C30 | 乙 2012 年 4 月 1 日 | 1106 | C30 | 一种
身份证件丢失