PostgreSQL 字段用逗号 “,”隔开 判断是否含有某个值

本文介绍了PostgreSQL中如何使用数组函数和操作符来检查字段值是否包含特定元素,参考官方文档《Array Functions and Operators》。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Array Functions and Operators

https://www.postgresql.org/docs/9.2/functions-array.html

-- ----------------------------
-- Table structure for T_STUDENT
-- ----------------------------
DROP TABLE IF EXISTS "public"."T_STUDENT";
CREATE TABLE "public"."T_STUDENT" (
"id" int4,
"name" varchar(255) COLLATE "default",
"course" varchar(255) COLLATE "default"
)
WITH (OIDS=FALSE)
;

-- ----------------------------
-- Records of T_STUDENT
-- ----------------------------
INSERT INTO "public"."T_STUDENT" VALUES ('1', '李四', '12,45,1,66,7,89');
INSERT INTO "public"."T_STUDENT" VALUES ('2', '刘一', '1,5,8,9');
INSERT INTO "public"."T_STUDENT" VALUES ('3', '王五', '0,4,2');
INSERT INTO "public"."T_STUDENT" VALUES ('4', '张三', '1,2,5,7');

-- ----------------------------
-- Alter Sequences Owned By 
-- ----------------------------

-- ----------------------------
-- Table structure for T_STUDENT
-- ----------------------------
DROP TABLE IF EXISTS "public"."T_STUDENT";
CREATE TABLE "public"."T_STUDENT" (
"id" int4,
"name" varchar(255) COLLATE "default",
"course" varchar(255) COLLATE "default"
)
WITH (OIDS=FALSE)
;

-- ----------------------------
-- Records of T_STUDENT
-- ----------------------------
INSERT INTO "public"."T_STUDENT" VALUES ('1', '李四', '12,45,1,66,7,89');
INSERT INTO "public"."T_STUDENT" VALUES ('2', '刘一', '1,5,8,9');
INSERT INTO "public"."T_STUDENT" VALUES ('3', '王五', '0,4,2');
INSERT INTO "public"."T_STUDENT" VALUES ('4', '张三', '1,2,5,7');

-- ----------------------------
-- Alter Sequences Owned By 
-- ----------------------------
id name course
4	张三	1,2,5,7
1	李四	12,45,1,5,66,7,89
2	刘一	1,5,8,9
3	王五	0,4,2

SELECT * FROM "public"."T_STUDENT" WHERE string_to_array(course, ',') @> ARRAY['2','7']
结果:
id name course
4	张三	1,2,5,7


SELECT * FROM "public"."T_STUDENT" WHERE string_to_array(course, ',') <@ array['5','12','45','1','0','4','2']
结果:
id name course
3	王五	0,4,2


SELECT * FROM "public"."T_STUDENT" WHERE   string_to_array(course, ',') &&  ARRAY['5','8','225','111']
结果:
id name course
4	张三	1,2,5,7
2	刘一	1,5,8,9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值