sql >> Databáze >  >> RDS >> Mysql

Získejte aktualizovanou hodnotu v MySQL namísto ovlivněných řádků

Můžete to udělat pomocí uložené procedury, která se aktualizuje a poté vybere novou hodnotu do výstupního parametru. Následující vrátí jeden sloupec new_score s novou hodnotou.

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 ;

V PHP:

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


  1. Nejlepší způsoby, jak vytvořit zálohy pro offline aplikace?

  2. řetězcový literál je příliš dlouhý - jak přiřadit dlouhá xml data k datovému typu clob v oracle 11g r2

  3. MySQL vyhledá přesné slovo s $ ve wordu

  4. Význam bajtů výpisu (systimestamp) Oracle