【问题标题】:Stored Procedure: How can I return a selected row from a table and increment a column in the selected table row存储过程:如何从表中返回选定的行并在选定的表行中增加一列
【发布时间】:2012-04-02 04:01:56
【问题描述】:

如何从表中选择一行并在选定行中增加一列,同时仍返回完整的选定行以在 PHP 中进行进一步处理。

我想输出一个select语句的结果,例如...

SELECT * FROM tbl WHERE something='else';

此表将有一个唯一的“id”列。

在同一过程中,我想增加所选表格行的一列。

这可能吗?

谢谢,

【问题讨论】:

    标签: mysql stored-procedures select


    【解决方案1】:

    我不相信你可以在一条 SQL 语句中做到这一点。您可以使用存储过程来执行此操作,类似于this thread 中描述的内容。您想要在增量之前还是之后的列值?

    【讨论】:

    • 增量值与返回的数据无关,所以它可能在之前或之后。但我想要返回的行中的多个列值。谢谢。
    • 这样做有什么好处,而不是类似于... SET @id = 0; SELECT (@id := id) AS id, tbl.another FROM tbl WHERE something='else'; UPDATE tbl SET num = num + 1 WHERE id = @id;
    • @christian - 一个优点是调用存储过程是与服务器的单一交互。存储过程还可以结合锁定和/或事务处理来提高数据完整性。存储过程的缺点是它在服务器上的负载有点多,并且(可能仅出于这个原因)一些 ISP 禁用了 MySQL 的存储过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 2022-11-25
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多