码迷,mamicode.com
首页 > 数据库 > 详细

postgresql ltree类型

时间:2015-02-10 14:39:53      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

  最近一个月使用Postgresql的时候,经常遇到ltree的数据,感觉有些别扭,可是有绕不过去。今天决心整理一下,以后使用方便一些。

一、简介

  ltree是Postgresql的一个扩展类型,由两位国外PostgreSQL贡献者共同开发。网址如下:http://www.sai.msu.su/~megera/postgres/gist

二、目的

  开发这个类型的目的是为了解决复杂的树状模型相关问题,如图:

技术分享

也是这个网址提到的内容:http://blog.163.com/digoal@126/blog/static/163877040201132843255911/

三、详解

3.1 是否安装ltree

  执行sql:select * from pg_extension where extname = ‘ltree‘;

extname        | ltree
extowner       | 10
extnamespace   | 2200
extrelocatable | t
extversion     | 1.0
extconfig      | 
extcondition   | 

  如果没有安装,参考网站:http://blog.163.com/digoal@126/blog/static/1638770402011427104710922/

3.2 定义

  ltree是由标签和分隔符组成的字符串,比如:L1.L2.L3

  • 分隔符:一般是小数点
  • 标签:目前支持由A-Za-z0-9_组成字符串
  • 路径:标签本身也是路径
  • lquery:可以理解为一个搜索ltree的正则表达式,例如:*.test.*,表示任何包含test标签的路径
  • ltxtquery:同上,一般用于全文扫描。

四、操作符 

操作符 返回值  描述 
ltree @> ltree           boolean 左手边参数是右手边的祖先(或者平辈)吗?
ltree <@ ltree      boolean 左手边参数是右手边的后代(或者平辈)吗?
ltree ~ lquery   boolean ltree 匹配 lquery 吗?
lquery ~ ltree  boolean ltree 匹配 lquery 吗?

 

 

五、事例

  

postgresql ltree类型

标签:

原文地址:http://www.cnblogs.com/liqiu/p/4283560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!