Maison >base de données >tutoriel mysql >Que renverra MySQL si la sous-requête utilisée pour attribuer une nouvelle valeur dans la clause SET d'une instruction UPDATE renvoie plusieurs lignes ?
Dans ce cas, MySQL renverra un message d'erreur car nous savons que si vous utilisez une sous-requête pour attribuer une nouvelle valeur dans la clause SET de l'instruction UPDATE, alors elle doit renvoyer une ligne pour chaque ligne correspondante dans la mise à jour table WHERE clause.
mysql> insert into info(id, remarks) values(5,'average'); Query OK, 1 row affected (0.06 sec) mysql> select * from info; +------+-----------+ | id | remarks | +------+-----------+ | 1 | Good | | 2 | Good | | 3 | Excellent | | 4 | Average | | 5 | Best | | 5 | average | +------+-----------+ 6 rows in set (0.00 sec)
Comme nous l'avons vu ci-dessus, la table "info" a deux lignes avec id = 5, donc lorsque nous l'utilisons dans une sous-requête, elle renverra plusieurs lignes, donc MySQL renverra un message d'erreur, comme suit :
mysql> UPDATE STUDENT SET grade = (SELECT remarks from info WHERE info.id = student.id) WHERE id = 5; ERROR 1242 (21000): Subquery returns more than 1 row
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!