zoukankan      html  css  js  c++  java
  • mysql根据村行政编号查询地区id组,村行政编号查询整串地区名称

    地区表里面是有6级的,级别分别是:国、省/直辖市、市、区/县、乡镇、村/小区,实现通过村的地区行政编号查询整个详细地址。

    数据库中准备好地区数据,表名称为“area1”,字段结构如下:

    字段结构中,id是地区的id号,parent_id是地区与上级地区的关联id,如此有序构建6级地区,从国一直构建到村。

    数据表里面的数据截图如下:

    我们要实现通过输入村的number(地区编号)就能查询出村上面的一串的详细地址,并且能查询出一串的ID组

    由于下级与上级的关系是用parent_id字段做关联的,地址数据不在一条上面,每次查询编号时,都要对应的查询上层5次,所以sql语句较为麻烦。

    sql语句如下:

    SELECT
        `a6`.`number` AS `number`,
        concat(
            `a1`.`id`,
            ',',
            `a2`.`id`,
            ',',
            `a3`.`id`,
            ',',
            `a4`.`id`,
            ',',
            `a5`.`id`,
            ',',
            `a6`.`id` 
        ) AS `area_id`,
        concat( `a1`.`name`, `a2`.`name`, `a3`.`name`, `a4`.`name`, `a5`.`name`, `a6`.`name` ) AS `area_name` 
    FROM
        (((((
                            `area1` `a6`
                            JOIN `area1` `a5` ON ((
                                    `a6`.`parent_id` = `a5`.`id` 
                                )))
                        JOIN `area1` `a4` ON ((
                                `a5`.`parent_id` = `a4`.`id` 
                            )))
                    JOIN `area1` `a3` ON ((
                            `a4`.`parent_id` = `a3`.`id` 
                        )))
                JOIN `area1` `a2` ON ((
                        `a3`.`parent_id` = `a2`.`id` 
                    )))
            JOIN `area1` `a1` ON ((
                    `a2`.`parent_id` = `a1`.`id` 
                ))) 
    WHERE
        ((
                `a6`.`level` = 6 
                ) 
        AND ( `a6`.`number` = 110101001002 )) 
        LIMIT 0,1

    通过以上sql语句,只要改变number的值就能得到结果,查询结果如下图:

    这样就实现了通过number(地区行政编号)查询area_id(id组),area_name(详细地址)的作用。

    一般在选择地区时,存储ID组,比存储地区行政编号作用更强,比如按地区搜索订单时,效果非常显著。

  • 相关阅读:
    结构型模式(一) 适配器模式
    选择器
    CSS引入
    CSS语法
    CSS介绍
    HTML练习
    HTML标签嵌套规则(重点)
    HTML标签分类(重点)
    HTML标签属性
    body标签
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/15527379.html
Copyright © 2011-2022 走看看