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を使用しています.phpでの値を取得する方法はあります@updated_idか? を使用しようとすると
取得します。 また、phpMyadminで実行したため、クエリが正しいと確信しており、正しい値が返されたため、機能しています。phpMyadmin での結果は次のようになりました。 SQLSTATE[HY000]: General error$stmt->fetchColumn();

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

IDが32の行の目的の列(条件があった)が更新されました。
何かご意見は?

4

1 に答える 1

0

この値は、単純な表を読むと読み取れると思います。フィールド エイリアスを追加して、このフィールドを名前で読み取ることもできます - SELECT @update_id AS updated_id

もう 1 つの方法は、SELECT...FOR UPDATEステートメントを使用することです。

于 2012-09-05T06:43:52.610 に答える