有人可以详细说明`SELECT LAST_INSERT_ID()`语句吗?

时间:2016-12-21 01:36:14

标签: mysql sql

我始终了解您使用SELECT从表中选择列。但是,当我看到SELECT LAST_INSERT_ID()时,我被抛弃了。我理解它的作用......但我不明白我们怎么能只是简单地要求最后插入的id。 SELECT关键字是否希望在之后立即看到列名...那么该函数调用如何满足该要求呢?

1 个答案:

答案 0 :(得分:3)

SELECT语句通常与FROM子句一起使用,以从表中的行中选择列 - 以及列和常量上的表达式。

如果没有FROM子句,SELECT只会评估表达式并返回一行。函数LAST_INSERT_ID()只是一个返回值的表达式,所以:

SELECT LAST_INSERT_ID()

返回带有单行(带有单个(未命名)列)的结果集。

有些数据库不喜欢SELECT没有FROM的想法。 Oracle就是其中之一。它需要一个FROM子句,并提供一个包含一列和一行的表。 MySQL也支持dual,所以你可以写:

SELECT LAST_INSERT_ID()
FROM dual;

如果您想在WHERE中加入SELECT子句(WHERE在MySQL中需要FROM),这很方便。