MySQL - 如何知道行的自动增量id

时间:2013-04-17 09:44:12

标签: php mysql sql database auto-increment

我想将数据插入到我的网站订单的mysql数据库中。

所以我将用户名和自动增量订单号存储在数据库中。

问题是,我如何再次提取订单号。

我试过这个:

SELECT ordernumber FROM transactions WHERE.....

如何完成这个?

9 个答案:

答案 0 :(得分:1)

你可以使用

SELECT LAST_INSERT_ID();

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

的更多信息

请注意,在执行SELECT或SET等其他SQL语句后,无法使用C API函数检索LAST_INSERT_ID(expr)的值。因此,当您执行INSERT语句时,就在此之后

SELECT LAST_INSERT_ID();

它可以工作但是当中间有其他语句时它将返回0并且获得它的唯一方法如下所述。

另一种选择是对表进行DESC排序并得到第一个数字

SELECT ordernumber FROM transactions ORDER By ordernumber DESC LIMIT 1;

答案 1 :(得分:0)

只需使用mysql_insert_id函数,它将为您提供最后插入的ID。

答案 2 :(得分:0)

在插入查询执行代码

之后调用mysql_insert_id()函数

答案 3 :(得分:0)

这取决于您使用什么方法将数据插入数据库。

对于mysql_ *函数,可以使用mysql_insert_id()函数。

对于PDO使用和mysqli_ *,请参阅以下答案:What is equivalent of mysql_insert_id(); using prepared statement?

答案 4 :(得分:0)

也可以使用LAST_INSERT_ID()或mysql_insert_id

答案 5 :(得分:0)

$lastOrderNumber = mysql_insert_id();
$sql = "SELECT ordernumber FROM transactions WHERE ordernumber = $lastOrderNumber;";

答案 6 :(得分:0)

如其他答案中所述,您应该使用mysql_insert_id。

例如,你可以使用它:

$sql = "INSERT INTO table VALUES ('username')";
$result = mysql_query($sql);
echo "ID of last inserted record is: " . mysql_insert_id();

以上将输出:

ID of last inserted record is: (The ordernumber here)

有关mysql_insert_id的更多信息,您可以查看here.

答案 7 :(得分:0)

有一个函数可以知道当前连接中插入的最后一个id

例如在inster数据之后你可以得到如下

mysql_query('INSERT INTO transactions  VALUES(\'b\')');

$id = mysql_insert_id();

答案 8 :(得分:0)

另一种方法是运行查询

select max(ordernumber) as lastordernumber from transactions;

这里,lastordernumber是期望值。