如何选择MySQL表中的最后一行?
我正在插入数据,我需要从上一行检索列值。
(我顺便使用PHP。) table1就是这样的
table1
******************
cate_id | task_id | start_date | end_date | line |
1 2 30/04/2012 26/06/2012 text
3 1 26/06/2012 27/06/2012 text
2 1 27/06/2012 01/01/9999 text
该表格中有NO an auto_increment
。
我的情况是更新表中现有的最后一行,然后插入一个新行。
答案 0 :(得分:5)
您已编辑了问题,这里是更新
SELECT MAX(cate_id) AS last_cate_id FROM table;
或者您可以通过以下方式获取下一个ID:
SELECT MAX(cate_id)+1 AS next_cate_id FROM table;
如果没有交易,这很容易插入相同的cate_id!
如果你不能使用它们,例如因为MyISAM,你可以插入select。
INSERT INTO table
(cate_id, task_id ..)
VALUES
( (SELECT MAX(cate_id)+1 AS next_cate_id FROM table), 1 )
答案 1 :(得分:1)
如果您没有订单,您将无法获得“最后”值或第一个,因为订单将不相同(必要),如果您没有自动递增,您怎么知道?哪一个是第一个或最后一个?,如果你正在使用日期或自动增量,你将能够得到它,但是,让我们说你有一个'column1'
的订单,你可以这样做:
select * from table1 order by `column1` desc limit 1