Cet article présente principalement la méthode d'interrogation et de mise à jour simultanées de la même table dans la base de données MySQL. Les amis qui en ont besoin peuvent s'y référer
Dans les projets ordinaires, nous rencontrons souvent de tels problèmes : j'ai besoin des données. est mis à jour et interrogé simultanément dans Zhang Biao. Par exemple : il existe une table de données comme indiqué ci-dessous. L'opération de mise à jour doit maintenant être : mettre à jour la valeur de nom de status=1 avec la valeur de nom de id=2
Habituellement, l'instruction suivante nous vient à l'esprit pour répondre à cette exigence :UPDATE tb_testSET NAME = ( SELECT NAME FROM tb_test WHERE id= 2)WHERE `status` = 1
Vous ne pouvez pas mettre à jour ou sélectionner la même table dans la même instruction. . Vous ne pouvez pas opérer sur la même table. Si vous y réfléchissez différemment, cela devrait être possible si ce n'est pas la même table. Par conséquent, le résultat de la sélection peut être considéré comme une table intermédiaire temporaire, et les données liées à la mise à jour souhaitées peuvent être obtenues à partir de la table intermédiaire. Par conséquent, la déclaration de mise à jour ci-dessus peut être modifiée comme suit : You can't specify target table 'tb_test' for update in FROM clause
UPDATE tb_testSET NAME = (select name from ( SELECT NAME FROM tb_test WHERE id = 2) as t)WHERE `status` = 1
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!