Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Holen Sie sich den aktualisierten Wert in MySQL anstelle der betroffenen Zeilen

Sie können dies mit einer gespeicherten Prozedur tun, die aktualisiert und dann den neuen Wert in einen Ausgabeparameter auswählt. Das Folgende gibt eine Spalte new_score zurück mit dem neuen Wert.

DELIMITER $$   -- Change DELIMITER in order to use ; withn the procedure
CREATE PROCEDURE increment_score
(
   IN id_in INT
)
BEGIN
    UPDATE item SET score = score + 1 WHERE id = id_in;
    SELECT score AS new_score FROM item WHERE id = id_in;
END
$$            -- Finish CREATE PROCEDURE statement
DELIMITER ;   -- Reset DELIMITER to standard ;

In PHP:

$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];