我有一个mysql表ip_list…
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
我有以下记录要添加到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,因为它已经在列中。
192.168.100.1
那么,INSERT查询是否有可能先检查记录然后插入?
INSERT
目前,我正在使用..首先,我先SELECT进行记录,然后INSERT对其进行匹配,然后再对其进行匹配。
SELECT
但是,我只想处理一个查询。
您可以使用以下查询。当表中不存在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' );