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”的行。