1

如何选择 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那张桌子上有。

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

4

2 回答 2

6

您已经编辑了问题,所以这里是更新

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 )
于 2012-06-26T11:50:11.987 回答
1

如果您没有订单,您将无法获得“LAST”值或第一个值,因为订单将不一样(必然),如果您没有自动增量,您怎么知道哪个是第一个还是最后一个?,如果您使用日期或自动增量,您将能够得到它,但是,假设您有订单,'column1'您可以执行以下操作:

select * from table1 order by `column1` desc limit 1
于 2012-06-26T12:27:04.810 回答