2013-05-17 46 views
0

我正在開發一個帶有可拖動框的小腳本並將它們保存在MySQL表中。但我有一個小問題。我不知道如何編寫SQL查詢來刪除和添加新的框。假設我們有這樣的表格:更改mysql中的所有列 - 可拖動框

----------------------------------- 
| id | position | title | 
----------------------------------- 
| 23 | 1  | something| 
| 24 | 2  | something| 
| 26 | 3  | sometging| 
| 32 | 4  | something| 
.............etc................... 
----------------------------------- 

ID是框的ID(框的唯一編號)。位置是佈局中每個框的位置,標題是標題(簡單):)我不知道如何使查詢添加/刪除框,並更改「位置」列中的所有行,在新的或刪除的行之後。

假設我想刪除ID = 24的框。這裏是變化後的表格:

----------------------------------- 
| id | position | title | 
----------------------------------- 
| 23 | 1  | something| 
| 26 | 2  | sometging| 
| 32 | 3  | something| 
.............etc................... 
----------------------------------- 

這是表格,當我在表中添加一個新的框。 (新盒ID = 10)

----------------------------------- 
| id | position | title | 
----------------------------------- 
| 10 | 1  | something| 
| 23 | 2  | something| 
| 24 | 3  | something| 
| 26 | 4  | sometging| 
| 32 | 5  | something| 
.............etc................... 
----------------------------------- 

如何編寫添加和刪除表格的查詢?

P.S.我的英語非常糟糕,我希望你能理解我,併爲我解決問題。

乾杯

回答

0

我知道你是想同時插入或刪除行更新位置。我對麼 ?

爲此,您可以使用觸發器同時執行兩個操作。並非所有版本的MySQL都支持觸發器,因此您必須檢查您的MySQL文檔。

否則,您必須在您的代碼中使用多個查詢:至少一個用於在插入/刪除之前更新您的表格,另一個用於插入/刪除。

例:如果1是你的新行的位置:

UPDATE my_tbl SET position = position + 1 where position >= 1 
INSERT INTO my_tbl (id, position, title) VALUES (10, 1, 'something') 

或者:如果2個是刪除行的實際位置:

UPDATE my_tbl SET position = position - 1 where position > 2 
DELETE FROM my_tbl where id = 24 

WHERE子句將取決於你規格,當然。

:如果你的表在位置字段唯一索引,更應做consistenly處理您的數據......

+0

是的,這是我需要的...非常感謝你Herode –

0

是這樣的哥哥 1.插入成箱(ID,職務,職稱)值('99' , '12', '東西'); 2.插入框中的值('99','12','something'); 3.如果您使用自動增加「ID」 插入框(位置,標題)值('12','東西'); db將分配你新的id。 你最好參考www.w3schools.com

玩得開心

+0

[這是一個可怕的來源(http://w3fools.com /) –

相關問題