首页 > 数据库 >使用SQL语句实现最短路线问题

使用SQL语句实现最短路线问题

时间:2023-03-21 21:01:37浏览次数:40  
标签:语句 短路线 name transfer stop next station SQL SELECT

今天学习了一种直接用sql语句实现查询最短路径的方法,为我们的系统开发提供了便利。

String sql ="WITH RECURSIVE transfer (start_station, stop_station, stops, path) AS (\n" +
                    "    SELECT station_name, next_station, 1, CAST(CONCAT(line_name,station_name , '->', line_name,next_station) AS CHAR(1000))\n" +
                    "    FROM bj_subway WHERE station_name = ?\n" +
                    "    UNION ALL\n" +
                    "    SELECT p.start_station, e.next_station, stops + 1, CONCAT(p.path, '->', e.line_name, e.next_station)\n" +
                    "    FROM transfer p\n" +
                    "             JOIN bj_subway e\n" +
                    "                  ON p.stop_station = e.station_name AND (INSTR(p.path, e.next_station) = 0)\n" +
                    ")\n" +
                    "SELECT * FROM transfer WHERE stop_station = ?;\n";

 

标签:语句,短路线,name,transfer,stop,next,station,SQL,SELECT
From: https://www.cnblogs.com/rsy-bxf150/p/17241404.html

相关文章

  • SQL:DML、DQL、DCL
    SQL:DML、DQL、DCLDML:DataManipulationLanguage(数据操作语言)DML用来对数据库中的数据记录进行增删改操作。DML-添加数据给指定字段添加数据(一条数据)INSERTI......
  • CentOS7安装mysql提示“No package mysql-server available
    在CentOS7上安装mysql时,出现了以下的提示:原因是:CentOS7带有MariaDB而不是MySQL,MariaDB和MySQL一样也是开元的数据库,您可以使用yum-yinstall mariadb-servermariadb命令......
  • Selsct语句的使用(查询)
                         ......
  • 【SQL】查询存在于一个表而不存在于另外一个表的数据
    需求描述:A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。--1、方法一(推荐):使用notexists函数,括号内select1查A与B的id能关联上的,然后查A表notexists的select*fro......
  • Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
    #情景今天在搭建springboot+mybatis环境的时候遇到的问题,大概率是版本导致的冲突问题#解决1.第一种解决方案<dependency><groupId>org.springframework.boot</groupI......
  • mysql集群搭建docker-compose方案
    MySQL集群搭建大致有两种方式,一种是单主/多从的主从复制方式,另一种是使用GaleraCluster高可用解决方案。1、步骤以下我们详细介绍一下单主/多从的主从复制方式:确认服......
  • mysql 事务
    https://blog.csdn.net/m0_46836425/article/details/121851867https://blog.csdn.net/qq_33459343/article/details/124634721......
  • mysql 在线修改表结构 onlineDDL
    背景:在项目库中有几个表的数据特别大,数据条数达到几千万。由于新需求上线,要加两个字段。如果直接在数据库用alter,会导致锁表,时长一两个小时,影响业务。所以找了pt-osc和gh-......
  • 消息 7347,级别 16, 链接服务器 'XXX' 的 OLE DB 访问接口 'MSDASQL' 返回的数据与列 '
    消息7347,级别16,状态1,第174行链接服务器'XXX'的OLEDB访问接口'MSDASQL'返回的数据与列'[MSDASQL].ext'所需的数据长度不匹配。所需的(最大)数据长度为510,但......
  • Sql Server数据库恢复挂起
    第一种解决办法:权限问题,把SQLServer启动账号改为具有完全控制权限的本地账号,停止SQL服务并重新启动ctrl+r运行输入services.msc,进入服务!然后找到具有完全控制权限的本......