欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 遍歷 統計省市區 數量

江奕云2年前12瀏覽0評論

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             |
+---------+------------+----------------+

可以看到,運行結果正確,實現了遍歷統計省市區數量的功能。