ホームページ > データベース > mysql チュートリアル > UPDATE ステートメントの SET 句に新しい値を割り当てるために使用されたサブクエリが複数の行を返した場合、MySQL は何を返しますか?

UPDATE ステートメントの SET 句に新しい値を割り当てるために使用されたサブクエリが複数の行を返した場合、MySQL は何を返しますか?

王林
リリース: 2023-08-27 19:13:02
転載
901 人が閲覧しました

如果用于在 UPDATE 语句的 SET 子句中分配新值的子查询返回多行,MySQL 将返回什么?

この場合、MySQL はエラー メッセージを返します。これは、サブクエリを使用して UPDATE ステートメントの SET 句に新しい値を割り当てる場合、その値を更新する必要があることがわかっているためです。 WHERE 句は、テーブル内の一致する行ごとに返されます。

Example

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)
ログイン後にコピー

上で見たように、「info」テーブルには id = 5 の 2 つの行があるため、サブクエリで使用すると複数の行が返されるため、MySQL次のようなエラー メッセージが返されます -< /p>

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
ログイン後にコピー

以上がUPDATE ステートメントの SET 句に新しい値を割り当てるために使用されたサブクエリが複数の行を返した場合、MySQL は何を返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート