2017-05-28 26 views
0

我保存在PostgreSQL的數據下面給出條款:JSON凡在PostgreSQL的

{"tags": "Tag 1,Tag 2,Tag 3"} 
{"tags": "Tag 1,Tag 4,Tag 5"} 
{"tags": "Tag 6,Tag 1,Tag 2"} 

我想搜索其中「標籤2」或標籤3存在記錄?

謝謝先進。

表模式,創建過程爲,

--create table 
CREATE TABLE "tblIrsInputTagging" ( 
    "IrsInputTaggId" serial NOT NULL, 
    "Irs_tags" json NOT NULL, CONSTRAINT "tblIrsInputTagging_pkey" 
    PRIMARY KEY ("IrsInputTaggId") 
) WITH (OIDS=FALSE); 
ALTER TABLE "tblIrsInputTagging" OWNER TO "postgre"; 

--insert json record 

INSERT INTO "tblIrsInputTagging" ("Irs_tags") 
VALUES ('{"tags": "Tag 1,Tag 2,Tag 3"}'); 

INSERT INTO "tblIrsInputTagging" ("Irs_tags") 
VALUES ('{"tags": "Tag 1,Tag 4,Tag 5"}'); 

INSERT INTO "tblIrsInputTagging" ("Irs_tags") 
VALUES ('{"tags": "Tag 6,Tag 1,Tag 2"}'); 
+0

列的數據類型是json –

+0

是那些標記列表,我的意思是「Tag1,Tag2,Tag3」是一個數組,還是隻是一個文本? – marmeladze

+0

只是一個文本 –

回答

0

比方說,列名是tags。在這種情況下,你可以像下面那樣查詢。
如果有具體的東西,讓我知道,所以我可能需要更新下面的代碼片段。

SELECT col_1, col_2, .. col_n 
FROM your_table 
WHERE tags::json->'tags' ILIKE '%Tag2%' 
OR 
tags::json->'tags' ILIKE '%Tag3%' 
+1

看起來像你的'LIKE'模式缺少通配符。 –

+0

錯誤:列「Tag2」不存在 LINE 2:WHERE「Irs_tags」:: json - >'tags'ILIKE「Tag2」 ^ ********** ****** **** ERROR:列「與Tag2」不存在 SQL狀態:42703 性格:73 –

+0

親愛Laurenz ALBE其示出錯誤該列「代碼2」的劑量不存在甚至它不是列它是裏面的數據賈森的標籤欄。 –