2017-08-26 75 views
0

要刪除的行我有一個表:如何識別在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

而且我也有這個界面上的「刪除度」按鈕,但我不知道如何來識別degree表中刪除哪一行當用戶在UI上刪除一定程度的時候。 也許我必須將id行添加到我的表中,當用戶更新度數時,我必須從該表中獲取此用戶的所有度數,然後刪除這些不存在的行嗎?

+1

您的主鍵是(userId,university,degree,field,graduation),這意味着需要所有這些信息來唯一標識一行。而是添加一個驗證主鍵。然後將該值傳遞給隱藏字段中的UI。當你點擊刪除的程度檢查值,只是刪除相應的行。將在一些例子中跟隨。 – fjoe

+0

排字驗證=自動遞增 – fjoe

回答

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,並且您應該擁有您需要知道的所有內容。

+0

非常感謝你!對於延遲迴復抱歉 – rel1x