由于强迫症而陷入困境的新手尝试自动重新排序 SQL 数据库
Newbie in dilemma due to OCD tries to reorder SQL database automatically
抱歉,我是 SQL 的新手。我几个小时前才学会的。我正在使用 MariaDB + InnoDB Engine 和 HeidiSQL 软件 + CodeIgniter 3。假设我有一个名为 disciples
的 table,其中包含以下数据:
-------------------
| sort_id | name |
-------------------
| 1 | Peter |
| 4 | John |
| 3 | David |
| 5 | Petrus |
| 2 | Matthew |
-------------------
我完全意识到,如果我更喜欢自定义排序,最好有一个名为 sort_id
的列,以便能够使用 ORDER BY
获取数据。但如果我删除 row 3
,新的 table 将如下所示:
-------------------
| sort_id | name |
-------------------
| 1 | Peter |
| 4 | John |
| 5 | Petrus |
| 2 | Matthew |
-------------------
问题是我有强迫症(假设有 1000 行),看到这个乱七八糟的数字(在本例中为 3 - 见上文 table) sort_id
。我认为这与"relational database"有关。有没有一种方法可以快速自动地 "re-assign/reset" 新 sort_id
数字到给定行并根据 name
使用 SQL 对它们进行 ASC order
排序code 而无需手动完成?
-------------------
| sort_id | name |
-------------------
| 1 | John |
| 2 | Matthew |
| 3 | Peter |
| 4 | Petrus |
-------------------
我在阅读 Lynn Crumbling 的回答后明白了这一点。
她让我意识到我需要一个主键才能更好地管理我的行,这正是我一直在寻找的。碰巧 InnoDB 会自动创建一个主键并且在 HeidiSQL 界面中是隐藏的,除非我指定一个特定的列,例如 id
。现在,我可以通过编辑主键 ID re-organize 我的 table 行,table 行将自动按照我想要的方式自行排序。在此之前,我编辑了 sort_id
但数据没有相应更新,因为它不是主键。
------------------------
| id | sort_id | name |
------------------------
| 1 | 1 | Peter |
| 2 | 4 | John |
| 3 | 5 | Petrus |
| 4 | 2 | Matthew |
------------------------
谢谢。
抱歉,我是 SQL 的新手。我几个小时前才学会的。我正在使用 MariaDB + InnoDB Engine 和 HeidiSQL 软件 + CodeIgniter 3。假设我有一个名为 disciples
的 table,其中包含以下数据:
-------------------
| sort_id | name |
-------------------
| 1 | Peter |
| 4 | John |
| 3 | David |
| 5 | Petrus |
| 2 | Matthew |
-------------------
我完全意识到,如果我更喜欢自定义排序,最好有一个名为 sort_id
的列,以便能够使用 ORDER BY
获取数据。但如果我删除 row 3
,新的 table 将如下所示:
-------------------
| sort_id | name |
-------------------
| 1 | Peter |
| 4 | John |
| 5 | Petrus |
| 2 | Matthew |
-------------------
问题是我有强迫症(假设有 1000 行),看到这个乱七八糟的数字(在本例中为 3 - 见上文 table) sort_id
。我认为这与"relational database"有关。有没有一种方法可以快速自动地 "re-assign/reset" 新 sort_id
数字到给定行并根据 name
使用 SQL 对它们进行 ASC order
排序code 而无需手动完成?
-------------------
| sort_id | name |
-------------------
| 1 | John |
| 2 | Matthew |
| 3 | Peter |
| 4 | Petrus |
-------------------
我在阅读 Lynn Crumbling 的回答后明白了这一点。
她让我意识到我需要一个主键才能更好地管理我的行,这正是我一直在寻找的。碰巧 InnoDB 会自动创建一个主键并且在 HeidiSQL 界面中是隐藏的,除非我指定一个特定的列,例如 id
。现在,我可以通过编辑主键 ID re-organize 我的 table 行,table 行将自动按照我想要的方式自行排序。在此之前,我编辑了 sort_id
但数据没有相应更新,因为它不是主键。
------------------------
| id | sort_id | name |
------------------------
| 1 | 1 | Peter |
| 2 | 4 | John |
| 3 | 5 | Petrus |
| 4 | 2 | Matthew |
------------------------
谢谢。