PostgreSQL如何查询字符串数组

时间:2019-03-22 06:34:47

标签: sql arrays postgresql


我正在尝试编写查询以检查元素是否在字符串数组中。

这是我的简单选择查询以及输出

select languages from person limit 3;
{CSS,HTML,Java,JavaScript,Python}
{JavaScript,Python,TensorFlow}
{C++,Python}

我如何编写查询以查找所有将“ Java”列为已知语言的人?
我尝试遵循该语法,但无法正常工作。

select languages from person where languages @> ARRAY['Java']::varchar[];

2 个答案:

答案 0 :(得分:1)

尝试

select languages from person where 'Java' = ANY (string_to_array(languages , ','))

答案 1 :(得分:1)

您需要在左侧使用字符串常量,并在数组列上使用ANY运算符:

select languages 
from person 
where 'Java' = any(languages);

这假定样本输出显示languages被定义为text[]varchar[]