You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL查询:获取course_id数组含指定值的学生姓名

PostgreSQL查询数组包含指定值的学生姓名

表结构

CREATE TABLE Student(
  name VARCHAR,  
  course_id SMALLINT[]
);

示例数据插入

INSERT INTO Student ( name, course_id ) VALUES ( 'john', ARRAY [1,2,3] );

实现查询的几种方法

方法1:使用数组包含运算符 @>

这是PostgreSQL中处理数组包含关系最直观的方式,运算符@>用于判断左侧数组是否包含右侧的数组元素:

SELECT name
FROM Student
WHERE course_id @> ARRAY[1]::SMALLINT[];

方法2:使用 ANY 关键字

ANY 会检查数组中是否存在任意元素等于指定值,写法更简洁:

SELECT name
FROM Student
WHERE 1 = ANY(course_id);

方法3:使用 array_position 函数

array_position 函数返回指定元素在数组中的索引位置,若元素不存在则返回NULL,通过判断结果不为NULL筛选目标记录:

SELECT name
FROM Student
WHERE array_position(course_id, 1) IS NOT NULL;

上述三种方法都能正确返回course_id数组包含1的学生姓名(如示例中的john)。

内容的提问来源于stack exchange,提问作者bluestacks454

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:06:38