Je souhaite insérer une ligne de données dans une table à cinq colonnes (cette table rejoint les membres et les jeux); quatre des cinq colonnes sont connues, tandis que le quatrième, rang, doit être calculée dynamiquement:Aide sur la requête MySQL synatx
wishlists(id (int, pk), memberid (int, FK), gameid(int, FK), rank (int), createdat(timestamp))
INSERT INTO wishlists (memberid, gameid, rank)
VALUES (somememberid, somegameid,)
Le rang de valeur doit rechercher la table et trouver tous les documents appartenant à un certain membre, comprendre les rangs et insérez le nouvel enregistrement avec le rang le plus bas. J'ai essayé quelques variantes, mais je ne peux pas obtenir la bonne syntaxe. Je sais comment le faire dans deux requêtes, mais je ne peux pas comprendre comment le faire dans une requête.
EDIT Le code suivant, que je l'ai utilisé à une occasion avant, les rendements [Err] 1582 - Incorrect parameter count in the call to native function 'ISNULL'
insert into wishlists (memberid, gameid, rank)
select
memberid,
gameid,
MAX(ISNULL(Rank,0))+1
from wishlists;
Voir mon commentaire ci-dessous: devrait être IFNULL pas ISNULL – zevra0