我想在MySQL DB表中添加一组条目。我需要添加条目,如果它不存在,否则在外面发送一些信号,表示它没有被添加(f.e。return false)。
我可以检查条目是否存在(使用一个查询),如果不存在则添加另一个查询。但是,因为我可能需要添加数千个条目,我认为额外的查询不好。
我可以以某种方式使用一个MySQL查询,如果它不存在则会添加条目,如果存在则返回false吗?
答案 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 1
比SELECT [column_name]...