Computer >> Máy Tính >  >> Lập trình >> MySQL

Xóa một hàng và sắp xếp lại các hàng khác với đúng ID trong MySQL?

Để hiểu khái niệm này, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau

mysql> create table ReorderSortDemo
   -> (
   -> UserId int
   -> );
Query OK, 0 rows affected (0.57 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into ReorderSortDemo values(14);
Query OK, 1 row affected (0.13 sec)
mysql> insert into ReorderSortDemo values(4);
Query OK, 1 row affected (0.10 sec)
mysql> insert into ReorderSortDemo values(6);
Query OK, 1 row affected (0.11 sec)
mysql> insert into ReorderSortDemo values(3);
Query OK, 1 row affected (0.09 sec)
mysql> insert into ReorderSortDemo values(8);
Query OK, 1 row affected (0.11 sec)
mysql> insert into ReorderSortDemo values(18);
Query OK, 1 row affected (0.08 sec)
mysql> insert into ReorderSortDemo values(1);
Query OK, 1 row affected (0.12 sec)
mysql> insert into ReorderSortDemo values(11);
Query OK, 1 row affected (0.08 sec)
mysql> insert into ReorderSortDemo values(16);
Query OK, 1 row affected (0.09 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from ReorderSortDemo;

Sau đây là kết quả

+--------+
| UserId |
+--------+
|     14 |
|      4 |
|      6 |
|      3 |
|      8 |
|     18 |
|      1 |
|     11 |
|     16 |
+--------+
9 rows in set (0.00 sec)

Đầu tiên xóa một hàng khỏi bảng, sau đó sử dụng lệnh cập nhật để sắp xếp lại các hàng khác. Truy vấn như sau -

mysql> delete from ReorderSortDemo where UserId=8;
Query OK, 1 row affected (0.20 sec)

Sau khi xóa, chúng ta hãy kiểm tra các bản ghi bảng một lần nữa. Truy vấn như sau -

mysql> select *from ReorderSortDemo;

Kết quả như sau

+--------+
| UserId |
+--------+
|     14 |
|      4 |
|      6 |
|      3 |
|     18 |
|      1 |
|     11 |
|     16 |
+--------+
8 rows in set (0.00 sec)

Đây là truy vấn để sắp xếp lại các cột khác

mysql> update ReorderSortDemo
   -> set UserId=UserId-1
   -> where UserId > 8;
Query OK, 4 rows affected (0.22 sec)
Rows matched: 4 Changed: 4 Warnings: 0

Hãy để chúng tôi kiểm tra các bản ghi bảng một lần nữa. Truy vấn như sau -

mysql> select *from ReorderSortDemo;

Kết quả như sau

+--------+
| UserId |
+--------+
|     13 |
|      4 |
|      6 |
|      3 |
|     17 |
|      1 |
|     10 |
|     15 |
+--------+
8 rows in set (0.00 sec)