MySQL 如何进行递归SELECT查询
对于递归查询,我们来看一个示例。首先,我们将创建一个表。使用CREATE命令创建表。
mysql> CREATE table tblSelectDemo
- > (
- > id int,
- > name varchar(100)
- > );
Query OK, 0 rows affected (0.61 sec)
现在,我们将在“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)
要显示所有记录。
mysql> SELECT *from tblSelectDemo;
以下是输出。
+------+-------+
| id | name |
+------+-------+
| 1 | John |
| 2 | Carol |
| 3 | Smith |
| 4 | David |
| 5 | Bob |
+------+-------+
6 rows in set (0.00 sec)
以下是递归SELECT的语法。
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;
以下是输出。
+------+----------------+
| id | NameofStudent |
+------+----------------+
| 4 | David |
+------+----------------+
1 row in set (0.00 sec)
阅读更多:MySQL 教程
极客教程