gpt4 book ai didi

sql - Postgres 选择数组具有相等值但没有特定顺序的位置

转载 作者:行者123 更新时间:2023-11-29 12:40:56 25 4
gpt4 key购买 nike

尝试查询表中的值,其中两个数组具有相同的值,但不一定具有相同的顺序。

给定:一列值为

{'first', 'second'}

预期:

SELECT * FROM my_table WHERE array_column = {'second', 'first'}

预期:

SELECT * FROM my_table WHERE array_column = {'second'}

结果 1

{'first', 'second'}

结果 2:无

我可以对正在查询的输入数组进行排序,但我不能保证数据库会以相同的顺序存储这些数组。有没有简单的方法可以做到这一点?

最佳答案

假设数据结构如下:

CREATE TABLE my_table
(
id BIGINT PRIMARY KEY,
array_column TEXT[]
);

INSERT INTO my_table ( id, array_column ) VALUES ( 1, ARRAY['first'] );
INSERT INTO my_table ( id, array_column ) VALUES ( 2, ARRAY['first','second'] );
INSERT INTO my_table ( id, array_column ) VALUES ( 3, ARRAY['first','second','third'] );

结合包含运算符(@>)和包含在运算符(<@)中:

SELECT
*
FROM
my_table
WHERE
array_column <@ ARRAY['second','first'] AND
array_column @> ARRAY['second','first'];

输出:

| id | array_column |
|----|--------------|
| 2 | first,second |

SQLFiddle

关于sql - Postgres 选择数组具有相等值但没有特定顺序的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50801377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com