Heim  >  Artikel  >  Datenbank  >  So fragen Sie untergeordnete Knoten in MySQL ab

So fragen Sie untergeordnete Knoten in MySQL ab

coldplay.xixi
coldplay.xixiOriginal
2020-10-27 15:36:192467Durchsuche

MySQL-Methode zum Abfragen untergeordneter Knoten: Erstellen Sie zuerst die Menütabelle und fügen Sie Daten ein. Verwenden Sie dann die Anweisung zum Abfragen. Der Code lautet [select id from(select t1.id,if(find_in_set(parent_id, @pids) > 0 .. ....)】.

So fragen Sie untergeordnete Knoten in MySQL ab

Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)

MySQL-Abfragemethode für untergeordnete Knoten:

Menü erstellen Tabelle: e

CREATE TABLE `menu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单id',
  `parent_id` int(11) DEFAULT NULL COMMENT '父节点id',
  `menu_name` varchar(128) DEFAULT NULL COMMENT '菜单名称',
  `menu_url` varchar(128) DEFAULT '' COMMENT '菜单路径',
  `status` tinyint(3) DEFAULT '1' COMMENT '菜单状态 1-有效;0-无效',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12212 DEFAULT CHARSET=utf8;

Daten einfügen:

INSERT INTO `menu` VALUES ('0', null, '菜单0', ' ', '1');
INSERT INTO `menu` VALUES ('1', '0', '菜单1', '', '1');
INSERT INTO `menu` VALUES ('11', '1', '菜单11', '', '1');
INSERT INTO `menu` VALUES ('12', '1', '菜单12', '', '1');
INSERT INTO `menu` VALUES ('13', '1', '菜单13', '', '1');
INSERT INTO `menu` VALUES ('111', '11', '菜单111', '', '1');
INSERT INTO `menu` VALUES ('121', '12', '菜单121', '', '1');
INSERT INTO `menu` VALUES ('122', '12', '菜单122', '', '1');
INSERT INTO `menu` VALUES ('1221', '122', '菜单1221', '', '1');
INSERT INTO `menu` VALUES ('1222', '122', '菜单1222', '', '1');
INSERT INTO `menu` VALUES ('12211', '1222', '菜单12211', '', '1');

Verzeichnisstruktur, die wie in der folgenden Abbildung dargestellt erhalten wird:

So fragen Sie untergeordnete Knoten in MySQL ab

Abfrage

SQL-Anweisung zuerst:

select id from (
              select t1.id,
              if(find_in_set(parent_id, @pids) > 0, @pids := concat(@pids, ',', id), 0) as ischild
              from (
                   select id,parent_id from re_menu t where t.status = 1 order by parent_id, id
                  ) t1,
                  (select @pids := 要查询的菜单节点 id) t2
             ) t3 where ischild != 0

, um beispielsweise alle Unterknoten des Menüknotens 12 zu überprüfen, Dann lautet das Ergebnis der Untersuchung:

So fragen Sie untergeordnete Knoten in MySQL ab

Das obige ist der detaillierte Inhalt vonSo fragen Sie untergeordnete Knoten in MySQL ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn