我们如何在MySQL INSERT INTO命令中使用WHERE子句?

在插入新行的情况下,我们可以在INSERT INTO命令中使用条件插入,即WHERE子句。可以通过以下方式完成-

借助虚拟表

在这种情况下,我们将插入虚拟表中的值以及一些条件。语法可以如下-

INSERT INTO table_name(column1,column2,column3,…) Select value1,value2,value3,… From dual WHERE [conditional predicate];

示例

mysql> Create table testing(id int, item_name varchar(10));

mysql> Insert into testing (id,item_name)Select 1,'Book' From Dual Where 1=1;
Records: 1 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+------+-----------+
| id   | item_name |
+------+-----------+
| 1    | Book      |
+------+-----------+

1 row in set (0.00 sec)

在上面的示例中,我们创建了一个表“ testing”,并且为了向其中插入行,我们使用了带有条件的对偶表double。如果条件为真,则MySQL将行插入表中,否则不插入。

在相同结构表的帮助下

如果要在结构与另一个表相同的表中插入,则在下面的示例中,已经说明了如何进行条件插入,即如何在INSERT INTO语句中使用WHERE子句。

mysql> Insert into dummy1(id,name)select id, name from dummy Where id =1;
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from dummy;

+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
| 2    | Aarav |
+------+--------+

2 rows in set (0.00 sec)

mysql> select * from dummy1;

+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
+------+--------+

1 row in set (0.00 sec)

在上面的示例中,我们在表'dummy1'中插入了与表'dummy'具有相同结构的值,但条件是仅插入'id = 1'的行。

猜你喜欢