1

我知道,这个问题被问了很多次,也得到了回答。
但是,我的问题更具体,我找不到合适的解决方案。

我的表(以页面命名)是这样的;

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 记录已转换为唯一键。

4

1 回答 1

3

我能想象的最合适的事情是在 slug 列上创建一个唯一索引

ALTER TABLE pages ADD UNIQUE KEY slug;

原因很简单:如果这不是唯一受限的,则可能有不止一个带有“主页”的 slug ......应该更新哪一个?

然后使用ON DUPLICATE KEY UPDATE子句:

INSERT INTO pages 
VALUES (NULL, $title, $content, $slug) ON DUPLICATE KEY UPDATE content=$content
于 2012-07-09T22:46:57.803 回答