在mysql中插入一行后,最新的一行根据日期往上爬
After inserting a row in mysql, the latest row climbs up based on date
在 table 中插入一行不会使其成为最后一行,而是在某些行之上插入一行。
insert into table (revenueSB40, revenueSM40, sum, eedate)
values(100,200,300,'2015-05-17');
最后几行:
| 41200 | 80620 | 121820 | 2015-05-11 00:00:00 |
| 35440 | 86100 | 121540 | 2015-05-12 00:00:00 |
| 30160 | 62600 | 92760 | 2015-05-13 00:00:00 |
| 19800 | 31780 | 51580 | 2015-05-16 00:00:00 |
| 58480 | 90860 | 149340 | 2015-05-15 00:00:00 |
| 59440 | 52500 | 111940 | 2015-05-14 00:00:00 |
RDBMS tables 表示无序集。没有 "the first row of a table" 或 "the last row of the table" 这样的东西。当您发出不带 order by
子句的 select
语句时,数据库可能会 return 以它认为合适的任何顺序排列行("fit",通常表示 "fastest") .即使 table 中的数据没有改变,这些结果的顺序也可能会根据内部缓存的状态或执行的维护操作(例如,重建索引)而改变。
虽然数据库通常按插入顺序 return 行(尤其是对于没有任何索引的小 tables),但这绝对不是强制性的,你应该不 依赖此行为。
如果您希望对 returned 行的顺序有任何保证,您必须使用 order by
子句明确说明您需要的顺序,例如:
SELECT *
FROM `table`
ORDER BY revenueSB40
在 table 中插入一行不会使其成为最后一行,而是在某些行之上插入一行。
insert into table (revenueSB40, revenueSM40, sum, eedate)
values(100,200,300,'2015-05-17');
最后几行:
| 41200 | 80620 | 121820 | 2015-05-11 00:00:00 |
| 35440 | 86100 | 121540 | 2015-05-12 00:00:00 |
| 30160 | 62600 | 92760 | 2015-05-13 00:00:00 |
| 19800 | 31780 | 51580 | 2015-05-16 00:00:00 |
| 58480 | 90860 | 149340 | 2015-05-15 00:00:00 |
| 59440 | 52500 | 111940 | 2015-05-14 00:00:00 |
RDBMS tables 表示无序集。没有 "the first row of a table" 或 "the last row of the table" 这样的东西。当您发出不带 order by
子句的 select
语句时,数据库可能会 return 以它认为合适的任何顺序排列行("fit",通常表示 "fastest") .即使 table 中的数据没有改变,这些结果的顺序也可能会根据内部缓存的状态或执行的维护操作(例如,重建索引)而改变。
虽然数据库通常按插入顺序 return 行(尤其是对于没有任何索引的小 tables),但这绝对不是强制性的,你应该不 依赖此行为。
如果您希望对 returned 行的顺序有任何保证,您必须使用 order by
子句明确说明您需要的顺序,例如:
SELECT *
FROM `table`
ORDER BY revenueSB40