admin

插入查询检查记录是否存在-如果不存在,则将其插入

sql

我有一个mysql表ip_list

+----+---------------+
| id |    ip_addr    |
+----+---------------+
|  1 | 192.168.100.1 |
|  2 | 192.168.100.2 |
|  3 | 192.168.100.3 |
|  4 | 192.168.100.4 |
|  5 | 192.168.100.5 |
+----+---------------+

我只想添加不在ip_addr列中的记录。 对于前

我有以下记录要添加到ip_addr表中

192.168.100.6
192.168.100.10
192.168.100.11
192.168.100.1   //already in column
192.168.100.12

我不想添加192.168.100.1,因为它已经在列中。

那么,INSERT查询是否有可能先检查记录然后插入?

目前,我正在使用..首先,我先SELECT进行记录,然后INSERT对其进行匹配,然后再对其进行匹配。

但是,我只想处理一个查询。


阅读 119

收藏
2021-05-10

共1个答案

admin

您可以使用以下查询。当表中不存在ip_address时,它将在此处插入ip_address。

INSERT INTO ip_list (ip_addr)
SELECT * FROM (SELECT '192.168.100.1') AS tmp
WHERE NOT EXISTS (
    SELECT ip_addr FROM ip_list WHERE ip_addr='192.168.100.1'
);
2021-05-10