在插入新行的情况下,我们可以使用条件插入,即 where 子句和 insert into 命令。可以通过以下方式完成 -
借助虚拟表在这种情况下,我们插入虚拟表中的值以及一些状况。语法如下 -
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: 0mysql> select * from testing;+------+-----------+| id | item_name |+------+-----------+| 1 | book |+------+-----------+1 row in set (0.00 sec)
在上面的示例中,我们创建了一个表“testing”,为了向其中插入行,我们使用了带有条件的虚拟表对偶。如果条件为真,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: 0mysql> 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”的行。
以上就是我们如何将 where 子句与 mysql insert into 命令一起使用?的详细内容。