首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有条件的SQL插入查询

问带有条件的SQL插入查询
EN

Stack Overflow用户
提问于 2015-08-16 19:29:34
回答 10查看 131.6K关注 0票数 8

当满足条件时,我试图将值插入表的1列中。

注意:该表已经包含了所有列的数据,但1的数据为空。我想根据WHERE子句将值插入到这1列中。

我有一个疑问:

代码语言:javascript
复制
INSERT INTO <TABLE_NAME>
(COLUMN_NAME)
(VALUE)
WHERE <CONDITION>

我有个例外:

关键词附近的不正确语法

我可以使用UPDATE来完成这个任务:

代码语言:javascript
复制
UPDATE <TABLE_NAME>
SET <COL_NAME>
WHERE <CONDITION>

但不知道为什么INSERT查询失败。任何建议都很感激。

EN

回答 10

Stack Overflow用户

发布于 2015-08-16 19:42:09

正如我理解您的问题一样,您已经在一行中有数据,而该行中的一列没有值,因此您希望在该列中添加值。

这是更新现有行的方案,而不是插入新行。当数据已经存在并且需要修改记录时,您必须使用UPDATE子句。要在表中插入新行时,请选择“插入”。

因此,在当前场景中,Update是Where子句的朋友,因为您希望修改记录子集,而不是所有记录。

代码语言:javascript
复制
UPDATE <TABLE_NAME>
SET <COL_NAME>
WHERE <CONDITION>

按照任何RDBMS语法,插入子句都没有Where子句(我认为)。Insert是条件较少的sql查询,而SELECT、UPDATE、DELETE都是条件命令,您可以在后面的所有命令中添加Where子句。

票数 12
EN

Stack Overflow用户

发布于 2015-08-16 19:52:52

为了在已填充行时将值添加到一个列中,您将需要使用update语句。

如果需要插入具有where子句的新行,则需要使用insert insert select语句:

代码语言:javascript
复制
INSERT INTO <table> (<columns>)
SELECT <columns>
FROM <table>
WHERE <condition>;
票数 10
EN

Stack Overflow用户

发布于 2015-08-16 20:00:16

SQL不接受where参数,可以检查以下内容:SQL插入定义.

我不知道您想做什么的全部问题,但是仅使用INSERT语句是不可能的,但是如果数据依赖于另一个表或来自另一个表,则可以将数据插入到表中.看看这里..。维基百科中的SQL解释

就像这样:

从其他表复制行

代码语言:javascript
复制
INSERT INTO phone_book2
SELECT *
FROM   phone_book
WHERE  name IN ('John Doe', 'Peter Doe')

或

代码语言:javascript
复制
INSERT INTO phone_book2 ( [name], [phoneNumber] )
SELECT [name], [phoneNumber]
FROM   phone_book
WHERE  name IN ('John Doe', 'Peter Doe')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32039059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档