从字段中删除特定数据而不会完全覆盖

时间:2016-03-02 23:38:36

标签: mysql

我在一个表中有一个用于入围作业的字段。当用户将作业添加到候选名单时,它会添加以逗号分隔的ID。

例如:"1, 2, 3, 4, 5"

让我们说客户从他们的候选名单中删除一份工作,我需要删除该字段中的值,而不删除其他ID。

因此,如果我们删除ID 4,我需要将字段值更新为:"1, 2, 3, 5"

要添加数据,请使用当前查询:

UPDATE users SET shortlist = concat(shortlist, '".$r['jobid'].",') WHERE uid='".$row['uid']."'

我假设有一些与我上面所做的事情有关,但我无法弄明白。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

由于您在PHP中创建列表,您还可以使用PHP修改它。

$stmt = $pdo->prepare("SELECT shortlist FROM users WHERE uid = :uid");
$stmt->execute(array(':uid' => $uid));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$shortlist = explode($row['shortlist']);
$pos = array_search('4', $shortlist);
if ($pos !== false) {
    unset($shortlist[$pos]);
    $shortlist_str = implode($shortlist);
    $stmt = $pdo->prepare("UPDATE users SET shortlist = :shortlist WHERE uid = :uid");
    $stmt->execute(':uid' => $uid, ':shortlist' => $shortlist_str));
}