1

我有这样的查询

SET @update_id := 0;  
UPDATE table SET column = something, id = (SELECT @update_id := id)  
WHERE condition  
LIMIT 1;   
SELECT @update_id;

它应该更新一列并返回更新后的行的 id。如您所见,在执行查询之前我没有行的ID。
我正在使用 pdo,有没有办法@updated_id在 php 中获取值?
当我SQLSTATE[HY000]: General error尝试使用$stmt->fetchColumn();.
我也确定查询是正确的,因为我在 phpMyadmin 中执行了它,它返回了一个正确的值,所以它工作正常。phpMyadmin 中的结果如下:

|   @updated_id    |  
|------------------|   
|        32        |

并且更新了 id 为 32 的行中的所需列(具有条件)。
有什么想法吗?

4

1 回答 1

0

我认为您可以在阅读简单表格时阅读此值。您还可以添加字段别名并按名称读取此字段 - SELECT @update_id AS updated_id

另一种变体是使用SELECT...FOR UPDATE语句。

于 2012-09-05T06:43:52.610 回答