且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

更新表,然后在mySQL中返回更新的行

更新时间:2023-02-04 13:43:01

我认为,只有一种方法:

I think, there is only one way:

CREATE DEFINER=`root`@`localhost` PROCEDURE `goto_stage`(IN `inc` INT, IN `session_token` VARCHAR(64))
    LANGUAGE SQL
    NOT DETERMINISTIC
    MODIFIES SQL DATA
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
    DECLARE new_stage INT;
    SELECT g.stage + inc INTO new_stage FROM games g INNER JOIN sessions s ON
            g.expired = 0 AND s.user = g.user AND s.token = session_token;
    UPDATE games SET stage = new_stage;
    SELECT script FROM d_stages WHERE id = new_stage;
END