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