我正在开发一个带有可拖动框的小脚本,并在MySQL表中保存它们的位置。但我有一点问题。我不知道如何编写SQL查询来删除和添加新框。假设我们有这样的表:
-----------------------------------
| 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 :(得分:0)
就像这个兄弟 1.插入框(id,position,title)值('99','12','something'); 2.插入框值('99','12','某事'); 3.如果您使用“ID”自动增加 插入框(位置,标题)值('12','某事'); db将分配你的新id。 您最好参考www.w3schools.com
玩得开心
答案 1 :(得分: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子句当然取决于您的规范。
但是:如果您的表在位置字段上有唯一索引,则应采取更多措施来处理您的数据......