有没有办法将这个陈述合而为一?基本思想是插入标记名称(如果它不存在)并检索下一个语句的主键。标题栏是唯一的。
INSERT INTO `tag_name` (`count`, `title`)
SELECT 0, @title FROM DUAL
WHERE not exists
(SELECT * FROM `tag_name` WHERE `title` = @title LIMIT 1);
如果行影响> 0则使用last_insert_rowid(),否则运行此语句
SELECT id from FROM `tag_name` WHERE `title` = @title
---这是一个测试
CREATE TABLE test (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, data int unique);
//insert into test(data) select 5;
答案 0 :(得分:-1)
您可以使用
insert into ... on duplicate update
这是插入行,当密钥重复时,请更新它。否则你可以使用:
insert into on duplicate update field1=field1
这将在重复时忽略!
答案 1 :(得分:-2)
您可以使用MySql特定的Replace语法。查看here了解详情。