检索 mysql 中最后更新的列
我有一个 MySQL 查询,如下所示(使用 Zend_Db):(
$sql = $handle->quoteInto("UPDATE board SET rank=rank+1 WHERE post_id=?", $postid);
$handle->query($sql);
排名不是自动递增的 PK)。 我现在想检索 rank
的值,而不执行另一个查询。 我已经尝试过 $handle->lastInsertId();
但它似乎不起作用,因为我没有使用 MySQL 的自然自动递增方法(我不能 - 排名
是帖子的排名,我要么 ++ 要么 -- 它。)
有什么方法可以通过执行另一个查询来做到这一点? 将返回最后更改的值的函数?
I have a MySQL query that goes as follows (using Zend_Db):
$sql = $handle->quoteInto("UPDATE board SET rank=rank+1 WHERE post_id=?", $postid);
$handle->query($sql);
(Rank isn't an auto-incrementing PK).
I would like to now retrieve the value of rank
without preforming another query.
I've tried $handle->lastInsertId();
but it doesn't seem to work , since I didn't use MySQL's natural auto-incrementing method (I can't - rank
is the rank of a post. I either ++ or -- it.)
Any way to do this with preforming another query? A function that will return the last changed value?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不相信这是可能的 - 你只需要执行
SELECT
。I don't believe this is possible - you'll just have to do a
SELECT
.您可以使用LAST_INSERT_ID MySQL 提供的用于设置值的函数,然后通过 mysql_insert_id()
$handle->lastInsertId();
依赖的 C 函数。以下是代码片段的更新版本,其中包含对其进行的 LAST_INSERT_ID 更改:
如果您有任何疑问,请告诉我。
HTH,
-迪平
You can use the LAST_INSERT_ID function that MySQL provides to set a value and then make it available via the mysql_insert_id() C function that the
$handle->lastInsertId();
relies on.The following is an updated version of your code snippet with the LAST_INSERT_ID changes made to it:
Let me know if you have any questions.
HTH,
-Dipin