MySQL是一種關系型數據庫管理系統,它是世界上最流行的開源數據庫之一,并廣泛應用于網站和應用程序的數據存儲和管理。在實際應用中,經常需要統計、遍歷省市區數量,本文將介紹如何使用MySQL實現這個功能。
首先,我們需要一個包含省市區數據的表,這里以中國的省市區數據為例,創建一個名為`china_area`的表:
CREATE TABLE `china_area` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL DEFAULT '', `parent_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
然后,我們向`china_area`表中插入省市區數據,這里只插入部分數據供演示:
INSERT INTO `china_area` (`id`, `name`, `parent_id`) VALUES (1,'中國',0), (2,'北京市',1), (3,'廣東省',1), (4,'深圳市',3), (5,'南山區',4), (6,'福田區',4), (7,'廣州市',3), (8,'天河區',7), (9,'越秀區',7), (10,'海珠區',7), (11,'湖南省',1), (12,'長沙市',11), (13,'岳麓區',12), (14,'天心區',12), (15,'湖北省',1), (16,'武漢市',15), (17,'江漢區',16), (18,'武昌區',16);
現在,我們可以使用SQL語句統計省市區數量。如下:
SELECT p.name `province`, COUNT(DISTINCT c.id) `city_count`, COUNT(DISTINCT d.id) `district_count` FROM `china_area` p LEFT JOIN `china_area` c ON p.id=c.parent_id AND c.parent_id<>0 LEFT JOIN `china_area` d ON c.id=d.parent_id AND d.parent_id<>0 WHERE p.parent_id=0 GROUP BY p.id;
解釋一下:我們首先從`china_area`表中獲取所有的省份,然后使用左連接得到每個省份下的城市和地區,通過COUNT函數統計城市和地區的數量,最后按照省份分組得到統計結果。
運行以上SQL語句,將得到如下結果:
+---------+------------+----------------+ | province| city_count | district_count | +---------+------------+----------------+ |中國 | 3 | 6 | |北京市 | 0 | 0 | |廣東省 | 2 | 0 | |湖南省 | 1 | 2 | |湖北省 | 1 | 2 | +---------+------------+----------------+
可以看到,運行結果正確,實現了遍歷統計省市區數量的功能。
上一篇css默認選中背景色藍色
下一篇css背景圖居中代碼