首页 >数据库 >mysql教程 >如何使用子查询正确地将多个值插入表中?

如何使用子查询正确地将多个值插入表中?

Susan Sarandon
Susan Sarandon原创
2025-01-05 20:11:44376浏览

How to Correctly Insert Multiple Values into a Table Using a Subquery?

使用子查询将值插入到表中

使用具有多个结果的子查询将值插入到表中可能具有挑战性。考虑这样的场景:您有两个表,文章和价格,并且您希望根据从文章获取的特定 ID 将条目插入到价格中。

一种经常导致 SQL 错误的常见方法是使用VALUES 子句中的子查询:

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);

此查询将导致错误,因为子查询返回多个结果。

正确的做法就是在INSERT查询中使用select语句,对常量字段进行硬编码:

insert into prices (group, id, price)
select 
    7, articleId, 1.50
from article where name like 'ABC%';

通过将常量字段与子查询分离,可以保证子查询的每个结果只插入一行。

以上是如何使用子查询正确地将多个值插入表中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn