微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL中的数组简单介绍

本篇内容介绍了“Postgresql中的数组简单介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!


假设你在一个网站上购买物品,那么你所购买的信息就可以用下面这个表来表示:
 

CREATE TABLE purchases (
  id integer NOT NULL,
  user_id integer,
  items decimal(10,2) [100][1],
  occurred_at timestamp
);

在这个表中,拥有一个数组字段来保持多个商品记录,包括

  •     购买商品的编号

  •     数量

  •     价格

要往这个表里插入数据的 sql 如下:
 
INSERT INTO purchases VALUES (1, 37, '{{15.0, 1.0, 25.0}, {15.0, 1.0, 25.0}}', Now());
INSERT INTO purchases VALUES (2, 2, '{{11.0, 1.0, 4.99}}', Now());
一个更有实际意义的例子是标签的使用,你可以用标签来标识购买的物品:

 

CREATE TABLE products (
  id integer NOT NULL,
  title character varying(255),
  description text,
  tags text[],
  price numeric(10,2)
);

你可使用基本的查询语句来获取数据:

 

SELECT title, unnest(tags) items FROM products


你还可以使用 Postgres 的 Gin and Gist  索引来根据指定的标签快速搜索产品:
 

-- Search where product contains tag ids 1 AND 2
SELECT *
FROM  products
WHERE  tags @> ARRAY[1, 2]
 
-- Search where product contains tag ids 1 OR 2
SELECT *
FROM  products
WHERE  tags && ARRAY[1, 2]

“Postgresql中的数组简单介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程之家网站,小编将为大家输出更多高质量的实用文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐