我的问题是。我在MySQL中使用字段“id”,“title”,“popular”来表“流行”。我需要将信息插入字段“title”,如果信息不存在或增加“流行度”值,如果信息存在。这样做的最佳做法是什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
INSERT INTO popular (title, popularity) VALUES (:the_title, 1)
ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), popularity = popularity + 1
确保您对title
id = LAST_INSERT_ID(id)
允许您使用id
(或MySQL API的等效函数)获取您插入/更新的记录的LAST_INSERT_ID
。如果您不需要id
,可以将其从UPDATE列表中删除。
答案 2 :(得分:0)
示例代码:
if exists (select * from contact where name = @name) then
select -1;
else
insert into contact(name) values(@name);
select last_insert_id();
end if;
的参考:强> 的
http://bugs.mysql.com/bug.php?id=19243
http://mikefenwick.com/blog/insert-into-database-or-return-id-of-duplicate-row-in-mysql/