在插入新行的情況下,我們可以使用條件插入,即 WHERE 子句和 INSERT INTO 命令。可以通過(guò)以下方式完成 –
借助虛擬表
在這種情況下,我們插入虛擬表中的值以及一些狀況。語(yǔ)法如下 –
INSERT INTO table_name(column1,column2,column3,…) Select value1,value2,value3,… From dual WHERE [conditional predicate];
登錄后復(fù)制
示例
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)
登錄后復(fù)制
在上面的示例中,我們創(chuàng)建了一個(gè)表“testing”,為了向其中插入行,我們使用了帶有條件的虛擬表對(duì)偶。如果條件為真,MySQL 會(huì)將行插入到表中,否則不會(huì)。
借助相同結(jié)構(gòu)的表
如果我們想插入結(jié)構(gòu)與另一個(gè)表相同的表,然后在下面的示例中演示了如何進(jìn)行條件插入,即如何將 WHERE 子句與 INSERT INTO 語(yǔ)句一起使用。
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)
登錄后復(fù)制
在上面的示例中,我們?cè)诒怼癲ummy1”中插入了值,其結(jié)構(gòu)與表“dummy”相同,條件是僅插入“id = 1”的行。
以上就是我們?nèi)绾螌?WHERE 子句與 MySQL INSERT INTO 命令一起使用?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!