Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour plusieurs enregistrements de base de données avec une seule requête SQL ?
La mise à jour d'un grand nombre d'enregistrements dans une base de données peut prendre beaucoup de temps et tâche répétitive si elle est effectuée individuellement. Pour rationaliser le processus, il est possible de mettre à jour plusieurs enregistrements simultanément avec une seule requête SQL.
Une approche consiste à utiliser la syntaxe de mise à jour multi-tables, qui vous permet de joindre plusieurs tables et de modifier leurs colonnes respectives en une seule instruction.
Par exemple, considérez la exemple suivant :
UPDATE config t1 JOIN config t2 ON t1.config_name = 'name1' AND t2.config_name = 'name2' SET t1.config_value = 'value', t2.config_value = 'value2';
Dans cette requête, nous joignons deux instances de la table de configuration, étiquetées t1 et t2. La clause ON définit les critères de jointure, garantissant que les enregistrements à mettre à jour correspondent aux valeurs config_name spécifiques. Dans la clause SET, nous attribuons de nouvelles valeurs aux colonnes config_value pour t1 et t2.
Une autre option consiste à utiliser une mise à jour conditionnelle. , qui vous permet de définir différentes valeurs en fonction d'une condition spécifiée.
Considérez les éléments suivants requête :
UPDATE config SET config_value = CASE config_name WHEN 'name1' THEN 'value' WHEN 'name2' THEN 'value2' ELSE config_value END WHERE config_name IN('name1', 'name2');
Ici, nous utilisons l'instruction CASE pour définir la nouvelle valeur de la colonne config_value en fonction de la valeur config_name. Pour les noms « nom1 » et « nom2 », la valeur est mise à jour en conséquence ; sinon, la valeur actuelle est conservée. La clause WHERE limite la mise à jour aux enregistrements dont les valeurs config_name correspondent aux critères donnés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!