Gre*_*lty 1 mysql sql database debugging
目前在phpMyAdmin工作:
order 表格结构:
OrderID int(11) auto_increment
CustomerID varchar(50)
BillAddr varchar(200)
ShipAddr varchar(200)
Date date
Total double
Run Code Online (Sandbox Code Playgroud)
该表目前有4行数据,具有不同的OrderID.
SQL:
SELECT LAST_INSERT_ID() FROM `order`
Run Code Online (Sandbox Code Playgroud)
结果:
LAST_INSERT_ID()
0
0
0
0
Run Code Online (Sandbox Code Playgroud)
我期待第四行OrderID- 只有一个数字,但在phpMyAdmin中每行得到一个0.
LAST_INSERT_ID()返回最后一个插入行的id,并且不绑定到任何表.因此,如果您创建一个新行:
INSERT INTO table VALUES('a', 'b', 'c');
Run Code Online (Sandbox Code Playgroud)
它将返回最后一个id(新主键具有的值).
SELECT LAST_INSERT_ID();
=> 123
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看手册:
LAST_INSERT_ID()(不带参数)返回一个BIGINT(64位)值,表示由最近执行的INSERT语句为AUTO_INCREMENT列设置的第一个自动生成的值,以影响此类列.例如,在插入生成AUTO_INCREMENT值的行后,您可以获得如下值:
如果您只想在表中获取最后一个ID,可以这样做:
SELECT id FROM table ORDER BY id DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)