在PostgreSQL中使用ltree处理层次结构数据的方法( 三 )


$ SELECT user_id, path FROM comments WHERE path ~ ‘0001.0003.*{1}’ ORDER by path;
 user_id |  path
———+—————-
  8 | 0001.0003.0001
  9 | 0001.0003.0002
(2 rows)
 
为parent ‘0001.0003’找到所有的childrens,见下:
$ SELECT user_id, path FROM comments WHERE path ~ ‘0001.0003.*’ ORDER by path;
 user_id |   path
———+————————–
  6 | 0001.0003
  8 | 0001.0003.0001
  9 | 0001.0003.0001.0001
  9 | 0001.0003.0001.0002
  9 | 0001.0003.0001.0003
  9 | 0001.0003.0002
  11 | 0001.0003.0002.0001
  2 | 0001.0003.0002.0002
  7 | 0001.0003.0002.0002.0001
  20 | 0001.0003.0002.0002.0002
  31 | 0001.0003.0002.0002.0003
  22 | 0001.0003.0002.0002.0004
  34 | 0001.0003.0002.0002.0005
  22 | 0001.0003.0002.0002.0006
  5 | 0001.0003.0002.0003
(15 rows)
 
为children ‘0001.0003.0002.0002.0005’找到parent:
$ SELECT user_id, path FROM comments WHERE path = subpath(‘0001.0003.0002.0002.0005’, 0, -1) ORDER by path;
 user_id |  path
———+———————
  2 | 0001.0003.0002.0002
(1 row)
如果你的路径不是唯一的,你会得到多条记录 。
文章来源:脚本之家
来源地址:https://www.jb51.net/article/208595.htm
【在PostgreSQL中使用ltree处理层次结构数据的方法】申请创业报道,分享创业好点子 。,共同探讨创业新机遇!