Mysql
 sql >> база данни >  >> RDS >> Mysql

Вземете актуализирана стойност в MySQL вместо засегнатите редове

Можете да го направите със съхранена процедура, която се актуализира и след това избира новата стойност в изходен параметър. Следното връща една колона new_score с новата стойност.

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 ;

В PHP:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Невалиден израз на пътя. Трябва да бъде StateFieldPathExpression

  2. MySQL заявка за текущо време по GMT

  3. Как да разбера стандартния сървърен набор от символи в mysql?

  4. Защо innodb SHOW TABLE STATUS е толкова ненадежден?

  5. Последни дейности на потребителя - PHP MySQL