如何识别mysql中要删除的行

时间:2017-08-26 10:59:22

标签: html mysql

我有一张桌子:

CREATE TABLE IF NOT EXISTS degree (
    userId INT UNSIGNED NOT NULL,
    university VARCHAR(100),
    degree VARCHAR(30),
    field VARCHAR(100),
    graduation INT UNSIGNED,
    PRIMARY KEY (userId, university, degree, field, graduation)
);

我在那里为用户收集学位。我有一个用户界面将数据插入此表: enter image description here

此界面上还有一个“删除学位”按钮,但是当用户在UI上删除某个学位时,我不知道如何识别degree表中要删除的行。 也许我必须在我的表中添加id行,当用户更新度数时,我必须从表中获取该用户的所有度数,然后删除这些不再存在的行?

1 个答案:

答案 0 :(得分:4)

您的主键是(userId,university,degree,field,graduation),这意味着需要所有这些信息来唯一标识一行。而是添加一个自动递增的主键。然后将该值传递给隐藏字段中的UI。单击删除的度数时,请检查该值,然后删除相应的行。

像这样创建你的表:

CREATE TABLE IF NOT EXISTS degree (
    ID int NOT NULL AUTO_INCREMENT,
    userId INT UNSIGNED NOT NULL,
    university VARCHAR(100),
    degree VARCHAR(30),
    field VARCHAR(100),
    graduation INT UNSIGNED,
    PRIMARY KEY (ID)
);

创建一个隐藏字段来存储行ID,其中####是后端生成的行的值:

<input type="hidden" id="rowID" value="####" />

或者如果您不想使用和ID:

DELETE FROM degree
WHERE userId = '####'
AND university = '####'
AND degree = '####'
AND field = '####'
AND graduation = ####;

在阅读了关于问题的后续跟踪后,我没有删除按钮实际上从UI中删除了学位。我想让它隐藏学位并设置一个学位被删除的值。

<input type="hidden" id="deleted" value="false" />

然后将此值从false更改为true,您应该拥有需要知道的所有内容。