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

Làm cách nào để thực hiện truy vấn SELECT đệ quy trong MySQL?

Đối với lựa chọn đệ quy, chúng ta hãy xem một ví dụ. Đầu tiên, chúng ta sẽ tạo một bảng. Lệnh CREATE được sử dụng để tạo bảng.

mysql> CREATE table tblSelectDemo
   - > (
   - > id int,
   - > name varchar(100)
   - > );
Query OK, 0 rows affected (0.61 sec)

Bây giờ, chúng ta sẽ chèn các bản ghi vào bảng “tblSelectDemo”.

mysql> insert into tblSelectDemo values(1,'John');
Query OK, 1 row affected (0.10 sec)

mysql> insert into tblSelectDemo values(2,'Carol');
Query OK, 1 row affected (0.09 sec)

mysql> insert into tblSelectDemo values(3,'Smith');
Query OK, 1 row affected (0.17 sec)

mysql> insert into tblSelectDemo values(4,'David');
Query OK, 1 row affected (0.15 sec)

mysql> insert into tblSelectDemo values(5,'Bob');
Query OK, 1 row affected (0.18 sec)

Để hiển thị tất cả các bản ghi.

mysql> SELECT *from tblSelectDemo;

Đây là kết quả đầu ra.

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    3 | Smith |
|    4 | David |
|    5 | Bob   |
+------+-------+
6 rows in set (0.00 sec)

Sau đây là cú pháp cho SELECT đệ quy.

mysql> SELECT var1.id as id, @sessionName:= var1.Name as NameofStudent
   - > from (select * from tblSelectDemo order by id desc) var1
   - > join
   - > (select @sessionName:= 4)tmp
   - > where var1.id = @sessionName;

Đây là kết quả đầu ra.

+------+----------------+
| id   | NameofStudent  |
+------+----------------+
|    4 | David          |
+------+----------------+
1 row in set (0.00 sec)