如果不存在则向DB添加条目的最快方法

时间:2014-04-30 08:05:58

标签: php mysql sql

我想在MySQL DB表中添加一组条目。我需要添加条目,如果它不存在,否则在外面发送一些信号,表示它没有被添加(f.e。return false)。

我可以检查条目是否存在(使用一个查询),如果不存在则添加另一个查询。但是,因为我可能需要添加数千个条目,我认为额外的查询不好。

我可以以某种方式使用一个MySQL查询,如果它不存在则会添加条目,如果存在则返回false吗?

2 个答案:

答案 0 :(得分:1)

您可以使用WHERE NOT EXIST语法:

INSERT INTO table (name, address, tele)
VALUES ('John', 'Somewhere', '001')
WHERE NOT EXISTS (
    SELECT name FROM table WHERE name='value'
);

答案 1 :(得分:1)

要使用带有插入的WHERE NOT / EXIST查询来优化查询,您可以这样做:

INSERT INTO table (name, address, tele)
VALUES ('John', 'Somewhere', '001')
WHERE NOT EXISTS (
    SELECT 1 FROM table WHERE name='value'
);

可以使用LIMIT 1进一步优化,例如:

INSERT INTO table (name, address, tele)
VALUES ('John', 'Somewhere', '001')
WHERE NOT EXISTS (
    SELECT 1 FROM table WHERE name='value' LIMIT 1
);

注意:SELECT 1SELECT [column_name]...

更快