MySQL 如何使用WHERE子句与MySQL INSERT INTO命令?

MySQL 如何使用WHERE子句与MySQL INSERT INTO命令?

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

阅读更多:MySQL 教程

借助虚拟表进行插入

在这种情况下,我们将从虚表中插入值,并附带一些条件。语法如下-

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));
Query OK, 0 rows affected (0.15 sec)

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

mysql> Select * from testing;

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

1 row in set (0.00 sec)

在上面的示例中,我们创建了一个“testing”表,并使用虚表“dual”和条件将行插入其中。如果条件为真,MySQL会将行插入表中;否则不插入。

借助相同结构表进行插入

如果要插入与另一个表相同结构的表,那么在以下示例中演示了如何进行条件插入,即如何使用WHERE子句与INSERT INTO语句。

mysql> Insert into dummy1(id,name)select id, name from dummy Where id =1;
Query OK, 1 row affected (0.06 sec)
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)

在上面的示例中,我们将值插入与表“dummy”具有相同结构的表“dummy1”,并添加了条件,只插入“id = 1”的行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程