Quelle est la façon la plus simple de mettre à jour de nombreuses lignes dans une table? J'ai un fichier csv qui ressemble à ceci:
|primary_key |value|
| 1 | xyz|
| 2 | abc|
| 3 | def|
...
Les lignes avec ces clés primaires existent déjà dans la table cible
Je voudrais mettre à jour la table cible avec ces valeurs. Existe-t-il une syntaxe pour que je puisse écrire quelque chose comme:
update mytable set value = ('xyz', 'abc', 'def') where primary key = (1,2,3);
En parcourant la référence de mise à jour MySQL , ce site ( mise à jour MySQL - csv ), SO ( mise à jour de plusieurs lignes , plusieurs mises à jour de base de données , mise à jour de plusieurs lignes ), je soupçonne que la réponse est "non", mais je voudrais confirmer que cela est vrai.
Réponses:
Voici d'abord des exemples de données
Voici la nouvelle requête
Voici la nouvelle requête exécutée
la source
UPDATE table INNER JOIN ... USING(id) SET ...
est génialEn supposant que vous ne souhaitez pas charger les données du fichier CSV dans une table de base de données, puis effectuer une corrélation
UPDATE
,alors vous devriez pouvoir utiliser un
CASE
la source