रिकर्सिव सेलेक्ट के लिए, आइए एक उदाहरण देखते हैं। सबसे पहले, हम एक टेबल बनाएंगे। टेबल बनाने के लिए 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 | +------+-------+ 5 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 8.0+ में रिकर्सिव क्वेरी के लिए WITH RECURSIVE (CTE) का उपयोग करना अधिक बेहतर और मानक तरीका है।