gpt4 book ai didi

php - 更改 mysql 中的所有列 - 可拖动框

转载 作者:行者123 更新时间:2023-11-30 01:37:53 25 4
gpt4 key购买 nike

我正在开发一个带有可拖动框的小脚本,并将它们的位置保存在 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...................
-----------------------------------

如何编写从表中添加和删除框的查询?

附注我的英语很差,我希望你能理解我,并为我的问题提供解决方案。

干杯

最佳答案

我了解您想要在插入或删除行时更新位置。我说得对吗?

为此,您可以使用触发器同时执行这两个操作。并非所有版本的 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 子句取决于您的规范。

但是:如果您的表在位置字段上有唯一索引,则需要采取更多措施来一致地处理您的数据...

关于php - 更改 mysql 中的所有列 - 可拖动框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16609360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com