1
有一個類似的問題 Insert sequential number in MySQL基於另一個字段中插入序列號 - MySQL的
我想插入序列號表,但基於另一個字段。我有兩列page_numner
和parent
,所以具有相同父代的行應該有page_number
作爲連續數字。如果父母更改,頁面應該從1開始再增加1。
我想用水木清華這樣
SELECT @i:=0;
SELECT @p:=0;
UPDATE my_table AS t SET page_number = CASE
WHEN @p = t.`parent` THEN @i:[email protected]+1
ELSE 1 -- assign current parent to @p ??
END
但是,它無法弄清楚如何將新的父分配到@p
爲else
情況。
請注意,我試圖用純MySQL來實現這一點(如果可能的話,當然)
感謝
MySQL在同一個查詢中絕對支持'ORDER BY'和'JOIN'。 – defines
@defines。 。 。我認爲上下文很明顯。這是指「UPDATE」:https://dev.mysql.com/doc/refman/5.6/en/update.html。 –
感謝您的答案,這幾乎工作,但我想弄清楚一個小問題。可以說,對於'parent = 1',它指定了從1到15的頁碼,對於'parent = 2',第一個頁碼是1,但第二個是16,我猜是因爲var'@ i'結束了15,當父母改變時,是否有辦法將其重置爲0?謝謝 – dav