如何选择NO ID增量的最后一行

时间:2012-06-26 11:48:55

标签: php mysql

如何选择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

我的情况是更新表中现有的最后一行,然后插入一个新行。

2 个答案:

答案 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