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 语句进行查询:

  1. 查询广东省下所有的区:
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `city_id` = '广东省') AND `level` = 3;
  1. 查询深圳市下所有的区:
SELECT * FROM `zc_system_city` WHERE `parent_id` = (SELECT `id` FROM `zc_system_city` WHERE `city_id` = '深圳市') AND `level` = 3;

其中,parent_id 表示父级 idlevel 表示省市级别,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 查询城市表下级区域。

SQL 查询城市表下级区域:获取广东省、深圳市所有区

原文地址: https://www.cveoy.top/t/topic/nekg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录