SQL 查询城市表下级区域:获取广东省、深圳市所有区
SQL 查询城市表下级区域:获取广东省、深圳市所有区
本文将介绍如何使用 SQL 语句从城市表中查询特定城市下所有的区。
假设您有一个名为 zc_system_city 的城市表,其结构如下:
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='城市表';
现在,您需要根据传入的城市 city_id 查询该城市下所有的区。例如,传入广东省的 city_id,您需要查出广东省下所有的区;传入深圳市的 city_id,您需要查出深圳市下所有的区。
查询方法
您可以使用以下 SQL 语句进行查询:
- 查询广东省下所有的区:
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `city_id` = '广东省') AND `level` = 3;
- 查询深圳市下所有的区:
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `city_id` = '深圳市') AND `level` = 3;
其中,parent_id 表示父级 id,level 表示省市级别,3 表示区级别。
该方法首先通过传入的 city_id 查询出对应的 id,然后再根据 id 查询下一级的区。
代码示例
-- 查询广东省下所有的区
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `city_id` = '广东省') AND `level` = 3;
-- 查询深圳市下所有的区
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `city_id` = '深圳市') AND `level` = 3;
注意:
- 以上示例代码中的
广东省和深圳市需要替换为实际的城市city_id值。 - 确保
level的值与实际的区级别相对应。 - 如果您的数据库表结构不同,您需要根据实际情况修改 SQL 语句。
希望这篇文章能帮助您理解如何使用 SQL 查询城市表下级区域。
原文地址: https://www.cveoy.top/t/topic/nekg 著作权归作者所有。请勿转载和采集!