I made an MySQL Stored Procedure that is called updateplayerrank. It
creates a table called that computes a 'dense rank'. I want to store this
rank into the same table.
DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `updateplayerrank`(IN gameidin
int) BEGIN
SET @prev_value = NULL;
SET @rank_count = 0;
UPDATE player AS p INNER JOIN
((SELECT
id,
CASE
WHEN @prev_value = correct THEN @rank_count
WHEN @prev_value:=correct THEN @rank_count:=@rank_count + 1
ELSE @rank_count:=@rank_count + 1
END AS rank
FROM
player as x
WHERE
x.gameid = gameidin
ORDER BY correct DESC)) AS d
ON d.id = p.id
SET
p.ranked = d.rank
WHERE
p.gameid = gameidin; END$$ DELIMITER ;
But when I run the stored the stored procedure created using the code above
with Flask-SQLAlchemy it returns the following error:
(1052, "Column 'gameid' in where clause is ambiguous")
Is there a way that I can stop the ambiguity error? Or is there a better
Query to do this operation. I am using MySQL version 5.7, so I don't have
acces to winnow functions. I am running the Stored procedure using the
following code:
db.engine.execute("CALL updateplayerrank(%s)", (gameid))
I made the Stored Procedure With MySQLWorkbench and it runs fine over
there. I only get the error with Flask-SQLAlchemy
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.