更新已删除行下的行

时间:2016-03-17 12:58:00

标签: php mysql

如果我运行这样的多个查询,删除表answer_det中的行并询问我在哪里指定pID和qID:

$deldil = "DELETE FROM answer_det WHERE pid='" . $_SESSION['pid'] . "' AND qid ='$qid';";
$deldil .= "DELETE FROM question WHERE pid='" . $_SESSION['pid'] . "' AND qid ='$qid';";
    $rundeldilemma = mysqli_multi_query($mysqli,$deldil);  

如果删除pID = 1且qID = 2的行,它将在问题表中显示如下:

enter image description here

如果我同时想要更新已删除的行下面的所有行,那么如果qID = 3的第二行获得qID = 2,qID = 4的那一行获得qID = 3,我该怎么办?依此类推。我只想在已删除的行下面的行上执行此操作,但仅限于具有我指定的相同pID的行。这应该发生在两个表格上,' answer_det'和'问题'。

2 个答案:

答案 0 :(得分:1)

您可以使用以下查询更新行。这样做会搜索所有大于已删除行的qid的qid并将其减少1。

"UPDATE `question` SET `qid` = `qid` - 1 WHERE `pid` = '".$_SESSION['pid']."' AND `qid` > '$qid'"

答案 1 :(得分:-2)

主键不是数字。它只是绑定到某个数据库行的无意义的唯一序列。 你永远不应该碰它。