MySQL 查询城市下属地区:广东省/深圳市示例
MySQL 查询城市下属地区:广东省/深圳市示例
表结构:
CREATE TABLE `zc_system_city` (
`id` int(11) NOT NULL,
`city_id` int(11) NOT NULL DEFAULT '0' COMMENT '城市id',
`level` int(11) NOT NULL DEFAULT '0' COMMENT '省市级别',
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父级id',
`area_code` varchar(30) NOT NULL DEFAULT '' COMMENT '区号',
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '名称',
`merger_name` varchar(255) NOT NULL DEFAULT '' COMMENT '合并名称',
`lng` varchar(50) NOT NULL DEFAULT '' COMMENT '经度',
`lat` varchar(50) NOT NULL DEFAULT '' COMMENT '纬度',
`is_show` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否展示',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='城市表';
需求:
假如传入广东省,需要查询广东省下所有的区; 假如传入深圳市,需要查询深圳市下所有的区。
解决方案:
可以通过以下SQL语句来实现:
1. 查询广东省下所有区
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `name` = '广东省') AND `level` = 3;
2. 查询深圳市下所有区
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `name` = '深圳市') AND `level` = 4;
解释:
- 两个SQL语句都使用了子查询来获取目标城市(广东省或深圳市)的ID。
- 子查询
SELECTidFROMzc_system_cityWHEREname= '广东省'用于获取“广东省”的ID。 - 外层查询则根据获取的ID,并根据
level字段来筛选出目标城市的区。 level字段用于区分省、市、区等不同的行政级别。
总结:
以上示例展示了如何使用SQL语句查询特定城市下属的区,通过子查询获取城市ID,并根据ID和level筛选出目标地区的记录。您可以根据实际需求修改SQL语句中的参数和条件,以实现不同的查询功能。
原文地址: https://www.cveoy.top/t/topic/nej7 著作权归作者所有。请勿转载和采集!