SQL插入查询条件

8 浏览
0 Comments

SQL插入查询条件

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

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

我有这个查询:

INSERT INTO 
(COLUMN_NAME)
(VALUE)
WHERE 

我得到一个异常:

WHERE关键字附近的语法不正确

我能够使用UPDATE来完成这个操作:

UPDATE 
SET 
WHERE 

但是想知道为什么INSERT查询失败了。任何建议都将不胜感激。

0
0 Comments

SQL插入查询具有条件的原因是,SQL的插入语句本身不接受where参数。根据SQL插入定义,我们可以了解到这一点。但是,我们可以通过条件来控制数据插入到表中,如果这些数据依赖于另一个表或来自另一个表。可以参考维基百科中的SQL插入解释

例如,从其他表中复制行:

INSERT INTO phone_book2

SELECT *

FROM phone_book

WHERE name IN ('John Doe', 'Peter Doe')

或者

INSERT INTO phone_book2 ( [name], [phoneNumber] )

SELECT [name], [phoneNumber]

FROM phone_book

WHERE name IN ('John Doe', 'Peter Doe')

通过以上例子,我们可以看到在插入数据时,可以使用条件来选择要插入的数据。

0
0 Comments

问题原因:在已经存在数据的情况下,想要向某一列中添加一个新的值,需要使用update语句。如果需要插入一行数据并带有where子句的条件,需要使用insert into select语句。

解决方法:使用insert into select语句。该语句首先从另一个表中选择记录,然后插入到目标表中,没有where子句或条件插入到主表中。

以下是使用insert into select语句的示例代码:

INSERT INTO

()

SELECT

FROM

WHERE ;

该语句的作用是将满足条件的记录从源表中选择出来,然后插入到目标表中。其中,

表示目标表的名称,表示需要插入的列名,表示插入的条件。

通过使用insert into select语句,可以实现在已经存在数据的情况下,根据条件向某一列中添加新的值。

0
0 Comments

问题出现的原因是数据已经存在于表中的一行中,但是该行的某一列没有值,所以需要向该列添加值。但是这种情况应该使用更新(UPDATE)语句来修改已有的行,而不是插入(INSERT)新的行。当您想要插入新的行时,应该选择使用插入语句。

在当前的情况下,更新语句是您的朋友,可以结合使用WHERE子句来修改部分记录而不是全部记录。

UPDATE 
SET 
WHERE 

插入语句没有任何WHERE子句,至少在所有的关系数据库管理系统的语法中是如此(我认为)。插入是一种没有条件的SQL查询,而选择(SELECT)、更新(UPDATE)和删除(DELETE)都是有条件的指令,后三种指令都可以添加WHERE子句。

0