数据库
首页 > 数据库> > mysql – SQL树遍历

mysql – SQL树遍历

作者:互联网

我并不完全确定我这么说,但请耐心等待.

我想知道是否可以在SQL中执行类似的操作(特别是MySQL):
假设我们在下表中的数据库中保留了树状数据:

  mysql> desc data_table;
  +------------------------+---------------------+------+-----+---------+----------------+
  | Field                  | Type                | Null | Key | Default | Extra          |
  +------------------------+---------------------+------+-----+---------+----------------+
  | id                     | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
  | parent_id              | int(10) unsigned    | YES  | MUL | NULL    |                |
  | value                  | text                | YES  |     | NULL    |                |

因此每行都有一个父级,除了“根”行,每行除了叶子行外都有子级.

是否可以仅使用SQL查找任何给定行的所有后代?

解决方法:

可以仅使用SQL获取所有后代,但不能在单个查询中获取.但我相信你已经明白了;我假设你的意思是你想在一个查询中做到这一点.

您可能有兴趣阅读一些存储树结构的替代设计,这些设计使您能够使用单个SQL查询获取所有后代.见我的演讲Models for Hierarchical Data with SQL and PHP.

您还可以对其他品牌的数据库(例如PostgreSQL)使用递归SQL查询,但MySQL目前不支持此功能.

标签:sql,mysql,data-structures,tree,hierarchical-data
来源: https://codeday.me/bug/20190726/1545265.html