我有这样的查询
SET @update_id := 0;
UPDATE table SET column = something, id = (SELECT @update_id := id)
WHERE condition
LIMIT 1;
SELECT @update_id;
它应该更新一列并返回更新的行的id。正如您所见,在执行查询之前,我没有行的id
我正在使用pdo,有没有办法在php中获取@updated_id
的值?
当我尝试使用SQLSTATE[HY000]: General error
时,我得到$stmt->fetchColumn();
我也确定查询是正确的,因为我在phpMyadmin中执行了它并且它返回了一个正确的值,所以它正在工作。 phpMyadmin的结果如下:
| @updated_id |
|------------------|
| 32 |
更新了ID为32(具有条件)的行中的所需列 有什么想法吗?
答案 0 :(得分:0)
我认为您可以在阅读简单表格时阅读此值。您还可以添加字段别名并按名称读取此字段 - SELECT @update_id AS updated_id
。
另一种变体是使用SELECT...FOR UPDATE语句。