Je souhaite mettre à jour plusieurs lignes en fonction d'une requête SQL SELECT.boucle pure MySQL pour mettre à jour plusieurs lignes
Je veux le faire TOUT DANS UN SHELL SQL!
Voici ma sélection:
SELECT @myid := id, @mytitle := title
FROM event
WHERE pid>0 GROUP BY title
ORDER BY start;
Ensuite, je veux faire une mise à jour avec ce pseudo-code:
foreach($mytitle as $t)
BEGIN
UPDATE event
SET pid=$myid
WHERE title=$t;
END
Mais je ne sais pas comment Ake une boucle dans SQL.
Peut-être qu'il y a un moyen de le faire dans une seule requête sql?
JE NE VEUX PAS DE PHP! SEULEMENT CODE SHELL SQL !!!
Je ne pense pas que vous compreniez très bien comment SQL fonctionne. Il n'est pas clair à partir de votre question quel changement vous essayez de faire à votre base de données. Pourriez-vous s'il vous plaît expliquer en anglais quels changements vous voulez obtenir de cette "boucle SQL"? De cette façon, les gens seront en mesure d'expliquer ce que vous devez faire pour effectuer ces changements. – Hammerite
Cela fait un certain temps que j'ai utilisé MySQL, mais votre requête select aura une erreur dans la plupart des dialectes SQL. id n'est ni une fonction agrégée ni n'est inclus dans le groupe par. Qu'essayez-vous de faire? Attendez-vous seulement un identifiant pour un titre donné? Si vous essayez de choisir l'un des id associés à un titre, lequel? – Jay
J'ai un bug avec mes pids. Donc, je veux mettre à jour toutes les lignes avec un pid avec l'identifiant de la première occurrence d'un événement. Start est un horodateur – Marm