如何从查询中选择最后一个值?

时间:2018-10-30 02:05:02

标签: mysql sql postgresql

我有这张桌子:

enter image description here

我需要获取最后的写入值,即表的最后一个ID

我如何得到它?

3 个答案:

答案 0 :(得分:1)

在MySQL或Postgres中,您可以执行以下操作:

select t.*
from t
order by t.create_date desc
limit 1;

这假设您想要一行,即使表中多于一行的行create_date相同。

通常,id会与create_date一起增加,因此这可能会满足您的要求:

select max(id)
from t;

答案 1 :(得分:0)

我们可以使用相关子查询在您的表中找到最新记录:

SELECT *
FROM yourTable
WHERE create_date = (SELECT MAX(create_date) FROM yourTable);

如果两个或两个以上的记录因具有最新的create_date而并列,则会返回多个记录。

如果您使用的是Postgres或MySQL 8或更高版本,那么我们也可以在此处使用解析函数:

SELECT *
FROM
(
    SELECT *, ROW_NUMBER() OVER (ORDER BY create_date) DESC rn
    FROM yourTable
) t
WHERE rn = 1;

如果我们也想在这里建立联系,我们也可以将ROW_NUMBER替换为RANK

答案 2 :(得分:-1)

您可以使用Juery Ajax来获取mysql表中最后插入的ID 像

这样的查询
$sql="INSERT INTO users(firstname, lastname, email) VALUES ('khan', 'shan', 
'john@example.com')"

if($conn->query($sql))  // $conn as connection link
$last_id = $conn->insert_id; //will return last id