我知道,这个问题被问过很多次,也回答过..
但是,我的问题更具体,我找不到合适的解决方案。
我的表格(命名为pages)就是这样;
id (int)
title (text)
content (text)
slug (text)
如果 slug(我已将其转换为唯一)与发布的相同,我需要更新我的记录。
我的意思是我需要根据 slug 记录更新/插入我的记录。
例如。当前数据:
id | title | content | slug |
--------------------------------------
1 | MainPage| some html | mainpage
如果发布的数据有 title=ChildPage, content=html.., slug=mainpage
那么我需要更新以前的记录(标题和内容记录),但是如果数据有 title= MainPage, content=html.., slug=other_slug
然后我需要用新的 id 插入这个数据。
更新
Slug 记录已转换为 UNIQUE 键。
最佳答案
我能想到的最合适的事情是在 slug 列上创建一个唯一索引
ALTER TABLE pages ADD UNIQUE KEY slug;
原因很简单:如果这不是唯一约束,可能会有不止一个 slug 带有“mainpage”……应该更新哪一个??
然后使用 ON DUPLICATE KEY UPDATE子句:
INSERT INTO pages
VALUES (NULL, $title, $content, $slug) ON DUPLICATE KEY UPDATE content=$content
关于mysql - 如果存在则更新记录,否则插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404243/