English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Come eseguire una query SELECT ricorsiva in MySQL?

Per la selezione ricorsiva, diamo un esempio. Prima di tutto, creeremo una tabella. Il comando CREATE viene utilizzato per creare tabelle.

mysql> CREATE table tblSelectDemo
   - > (
   - > id int,
   - > name varchar(100)
   - > );

Ora, inseriremo le registrazioni nella tabella "tblSelectDemo".

mysql> insert into tblSelectDemo values(1,'John');
mysql> insert into tblSelectDemo values(2,'Carol');
mysql> insert into tblSelectDemo values(3,'Smith');
mysql> insert into tblSelectDemo values(4,'David');
mysql> insert into tblSelectDemo values(5,'Bob');

显示所有记录。

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)