gpt4 book ai didi

sql - postgreSQL hstore 如果包含值

转载 作者:行者123 更新时间:2023-11-29 11:28:06 24 4
gpt4 key购买 nike

有没有办法检查查询本身的 hstore 中是否已经存在一个值。

我必须在每行中存储各种值(每行都是一个“项目”)。我需要能够检查 id 是否已经存在于 hstore 行之一的数据库中,而无需先选择所有内容并在 php 中执行循环等。hstore 似乎是唯一提供类似功能的数据类型,并且还允许您选择该行的列到数组中。

Hstore 可能不是存储此类数据的最佳数据类型,但没有其他更好的数据类型可用。

整个项目使用 9.2,我无法更改 - json 在 9.3 中。

最佳答案

exist() 函数测试键是否存在。确定键 '42' 是否存在于 hstore 中的任何位置。 . .

select *
from (select test_id, exist(test_hs, '42') key_exists
from test) x
where key_exists = true;
test_id  key_exists--2        t

The svals() function returns values as a set. You can query the result to determine whether a particular value exists.

select *
from (select test_id, svals(test_hs) vals
from test) x
where vals = 'Wibble';

hstore Operators and Functions


create table test (
test_id serial primary key,
test_hs hstore not null
);

insert into test (test_hs) values (hstore('a', 'b'));
insert into test (test_hs) values (hstore('42', 'Wibble'));

关于sql - postgreSQL hstore 如果包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27173846/

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