亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL多層級結構-區域表使用樹詳解

2024-07-24 13:10:02
字體:
來源:轉載
供稿:網友

1.1. 前言

前面我們大概介紹了一下樹結構表的基本使用。在我們項目中有好幾塊有用到多層級的概念。下面我們哪大家都比較熟悉的區域表來做演示。
1.2. 表結構和數據

區域表基本結構,可能在你的項目中還有包含其他字段。這邊我只展示我們關心的字段:

CREATE TABLE `area` ( `area_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '地區ID', `name` varchar(40) NOT NULL DEFAULT 'unkonw' COMMENT '地區名稱', `area_code` varchar(10) NOT NULL DEFAULT 'unkonw' COMMENT '地區編碼', `pid` int(11) DEFAULT NULL COMMENT '父id', `left_num` mediumint(8) unsigned NOT NULL COMMENT '節點左值', `right_num` mediumint(8) unsigned NOT NULL COMMENT '節點右值', PRIMARY KEY (`area_id`), KEY `idx$area$pid` (`pid`), KEY `idx$area$left_num` (`left_num`), KEY `idx$area$right_num` (`right_num`))

區域表數據: area
導入到test表

mysql -uroot -proot test < area.sql

1.1. 區域表的基本操作

查看 '廣州' 的相關信息

SELECT * FROM area WHERE name LIKE '%廣州%';+---------+-----------+-----------+------+----------+-----------+| area_id | name   | area_code | pid | left_num | right_num |+---------+-----------+-----------+------+----------+-----------+|  2148 | 廣州市  | 440100  | 2147 |   2879 |   2904 |+---------+-----------+-----------+------+----------+-----------+

查看 '廣州' 所有孩子

SELECT c.* FROM area AS p, area AS cWHERE c.left_num BETWEEN p.left_num AND p.right_num AND p.area_id = 2148;+---------+-----------+-----------+------+----------+-----------+| area_id | name   | area_code | pid | left_num | right_num |+---------+-----------+-----------+------+----------+-----------+|  2148 | 廣州市  | 440100  | 2147 |   2879 |   2904 ||  2161 | 從化市  | 440184  | 2148 |   2880 |   2881 ||  2160 | 增城市  | 440183  | 2148 |   2882 |   2883 ||  2159 | 花都區  | 440114  | 2148 |   2884 |   2885 ||  2158 | 番禺區  | 440113  | 2148 |   2886 |   2887 ||  2157 | 黃埔區  | 440112  | 2148 |   2888 |   2889 ||  2156 | 白云區  | 440111  | 2148 |   2890 |   2891 ||  2154 | 天河區  | 440106  | 2148 |   2892 |   2893 ||  2153 | 海珠區  | 440105  | 2148 |   2894 |   2895 ||  2152 | 越秀區  | 440104  | 2148 |   2896 |   2897 ||  2151 | 荔灣區  | 440103  | 2148 |   2898 |   2899 ||  2150 | 東山區  | 230406  | 2148 |   2900 |   2901 ||  2149 | 其它區  | 440189  | 2148 |   2902 |   2903 |+---------+-----------+-----------+------+----------+-----------+

查看 '廣州' 所有孩子 和 深度 并顯示層級關系

SELECT sub_child.area_id, (COUNT(sub_parent.name) - 1) AS depth, CONCAT(REPEAT(' ', (COUNT(sub_parent.name) - 1)), sub_child.name) AS nameFROM ( SELECT child.*  FROM area AS parent, area AS child WHERE child.left_num BETWEEN parent.left_num AND parent.right_num  AND parent.area_id = 2148) AS sub_child, (   SELECT child.*  FROM area AS parent, area AS child WHERE child.left_num BETWEEN parent.left_num AND parent.right_num  AND parent.area_id = 2148) AS sub_parentWHERE sub_child.left_num BETWEEN sub_parent.left_num AND sub_parent.right_numGROUP BY sub_child.area_idORDER BY sub_child.left_num;+---------+-------------+-------+| area_id | name    | depth |+---------+-------------+-------+|  2148 | 廣州市   |   0 ||  2161 |  從化市  |   1 ||  2160 |  增城市  |   1 ||  2159 |  花都區  |   1 ||  2158 |  番禺區  |   1 ||  2157 |  黃埔區  |   1 ||  2156 |  白云區  |   1 ||  2154 |  天河區  |   1 ||  2153 |  海珠區  |   1 ||  2152 |  越秀區  |   1 ||  2151 |  荔灣區  |   1 ||  2150 |  東山區  |   1 ||  2149 |  其它區  |   1 |+---------+-------------+-------+

顯示 '廣州' 的直系祖先(包括自己)

SELECT p.* FROM area AS p, area AS cWHERE c.left_num BETWEEN p.left_num AND p.right_num AND c.area_id = 2148;+---------+-----------+-----------+------+----------+-----------+| area_id | name   | area_code | pid | left_num | right_num |+---------+-----------+-----------+------+----------+-----------+|  2147 | 廣東省  | 440000  |  0 |   2580 |   2905 ||  2148 | 廣州市  | 440100  | 2147 |   2879 |   2904 ||  3611 | 中國   | 100000  |  -1 |    1 |   7218 |+---------+-----------+-----------+------+----------+-----------+

向 '廣州' 插入一個地區 '南沙區'

-- 更新左右值UPDATE area SET left_num = left_num + 2 WHERE left_num > 2879;UPDATE area SET right_num = right_num + 2 WHERE right_num > 2879; -- 插入 '南沙區' 信息INSERT INTO areaSELECT NULL, '南沙區', '440115', 2148, left_num + 1, left_num + 2FROM area WHERE area_id = 2148; -- 查看是否滿足要求SELECT c.* FROM area AS p, area AS cWHERE c.left_num BETWEEN p.left_num AND p.right_num AND p.area_id = 2148;+---------+-----------+-----------+------+----------+-----------+| area_id | name   | area_code | pid | left_num | right_num |+---------+-----------+-----------+------+----------+-----------+|  2148 | 廣州市  | 440100  | 2147 |   2879 |   2906 ||  3612 | 南沙區  | 440115  | 2148 |   2880 |   2881 ||  2161 | 從化市  | 440184  | 2148 |   2882 |   2883 ||  2160 | 增城市  | 440183  | 2148 |   2884 |   2885 ||  2159 | 花都區  | 440114  | 2148 |   2886 |   2887 ||  2158 | 番禺區  | 440113  | 2148 |   2888 |   2889 ||  2157 | 黃埔區  | 440112  | 2148 |   2890 |   2891 ||  2156 | 白云區  | 440111  | 2148 |   2892 |   2893 ||  2154 | 天河區  | 440106  | 2148 |   2894 |   2895 ||  2153 | 海珠區  | 440105  | 2148 |   2896 |   2897 ||  2152 | 越秀區  | 440104  | 2148 |   2898 |   2899 ||  2151 | 荔灣區  | 440103  | 2148 |   2900 |   2901 ||  2150 | 東山區  | 230406  | 2148 |   2902 |   2903 ||  2149 | 其它區  | 440189  | 2148 |   2904 |   2905 |+---------+-----------+-----------+------+----------+-----------+
 


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品高潮视频| 亚洲国产一区二区三区在线观看| www.亚洲一区| 亚洲国产女人aaa毛片在线| 一区二区三区 在线观看视| 色偷偷av一区二区三区乱| 在线观看欧美日韩| 国产91精品不卡视频| 91超碰caoporn97人人| 久久精品国产v日韩v亚洲| 国产精品一区二区久久国产| 97免费视频在线| 成人自拍性视频| 欧美日韩国产精品| 亚洲第一视频网站| 国语自产精品视频在线看一大j8| 中文字幕精品影院| 久热国产精品视频| 亚洲大胆美女视频| 国产欧美在线视频| 欧美激情视频在线| 亚洲三级黄色在线观看| 欧美福利视频在线| 欧美精品性视频| 国产精品久久久久久久久久| 欧美亚洲成人精品| 日韩精品免费综合视频在线播放| 欧美日韩亚洲视频一区| 国内外成人免费激情在线视频| 国产精品视频免费在线观看| 久久精品一本久久99精品| 国产va免费精品高清在线| 8x海外华人永久免费日韩内陆视频| 91在线精品播放| 成人欧美在线观看| 日韩欧美在线播放| 亚洲第一区第一页| 亚洲第一免费播放区| 亚洲精品美女在线观看| 91av在线精品| 久久久午夜视频| 成人中心免费视频| 欧美极品少妇xxxxx| 欧美高清视频免费观看| 国产精品久久久久久久久粉嫩av| 欧美高清一级大片| 91高清免费在线观看| 亚洲天堂av图片| 国产999精品久久久影片官网| 国产午夜精品一区理论片飘花| 亚洲一区免费网站| 国产日韩欧美视频| 亚洲亚裔videos黑人hd| 国产精品亚洲综合天堂夜夜| 亚洲国产一区二区三区四区| 激情久久av一区av二区av三区| 国产一区二区美女视频| 欧美精品福利在线| 亚洲小视频在线观看| 国产精品羞羞答答| 精品日韩美女的视频高清| 欧美老女人在线视频| 国产噜噜噜噜噜久久久久久久久| 91精品国产777在线观看| 日韩成人在线播放| 欧美激情按摩在线| 日韩精品视频中文在线观看| 欧美黑人又粗大| 91精品国产自产在线观看永久| 亚洲欧美国产精品| 欧美一级片一区| 欧美成人精品在线播放| 亚洲高清久久久久久| 国产精品jizz在线观看麻豆| 亚洲色图欧美制服丝袜另类第一页| www亚洲精品| 亚洲精品中文字幕女同| 国产一区二区三区网站| 欧美成人亚洲成人日韩成人| 亚洲欧洲午夜一线一品| 亚洲国产精彩中文乱码av| 亚洲人成电影网站色www| 久久伊人免费视频| 日韩av在线网| 久久亚洲精品一区| 亚洲男人天堂2019| 91精品在线播放| 欧美成人黑人xx视频免费观看| 亚洲黄页网在线观看| 亚洲国产精品va| 97视频人免费观看| 国产成人91久久精品| 日韩精品亚洲视频| 中文字幕精品一区二区精品| 亚洲第一区中文字幕| 欧美又大粗又爽又黄大片视频| 亚洲精品丝袜日韩| 91国内在线视频| 这里只有精品在线观看| 狠狠久久亚洲欧美专区| 97精品在线视频| 欧美日韩亚洲一区二| 中文字幕一区电影| 国产精品欧美日韩一区二区| 1769国产精品| 日本sm极度另类视频| 成人h视频在线观看播放| 亚洲第一区在线| 亚洲女人天堂色在线7777| 日本人成精品视频在线| 欧美性在线观看| 亚洲精品福利免费在线观看| 中文字幕av一区二区| 性欧美亚洲xxxx乳在线观看| 亚洲最大激情中文字幕| 色偷偷91综合久久噜噜| 国产999精品久久久| 日韩欧美在线一区| 人九九综合九九宗合| 日韩欧美中文字幕在线播放| 久久91超碰青草是什么| www国产91| 欧美另类69精品久久久久9999| 97在线看福利| 亚洲成色www8888| 国产精品美女网站| 91成人福利在线| 国内精品在线一区| 国产乱人伦真实精品视频| 成人免费淫片aa视频免费| 久久久影视精品| 国产欧美精品在线播放| 两个人的视频www国产精品| 亚洲国产精久久久久久| 国内精品视频在线| 国产欧美一区二区三区在线| 成人免费视频网| 日韩在线高清视频| 最近中文字幕mv在线一区二区三区四区| 欧美日韩第一页| 日韩电影视频免费| 国产精品欧美风情| 精品动漫一区二区三区| 97久久久久久| 欧美成人四级hd版| 精品夜色国产国偷在线| 成人精品视频在线| 26uuu久久噜噜噜噜| 成人午夜一级二级三级| 中文字幕亚洲综合| 成人黄在线观看| 国产精品自拍网| 日韩中文字幕免费视频| 91色精品视频在线| 国产精品旅馆在线| 久久久久久久91| 日韩欧美成人免费视频| 日韩精品在线观看视频| 欧美午夜精品伦理| 91精品国产高清久久久久久久久| 日韩禁在线播放| 亚洲国产精品久久久久久| 欧美性受xxxx白人性爽| 欧美精品videossex性护士|