使用postgresql对文本数组进行phraseto_tsquery

时间:2018-11-30 02:45:01

标签: sql postgresql

我有以下两个表

trigger_keyword表

0 0 0 0 0 0 2
0 0 0 0 0 2 1
2 1 0 2 2 1 2
2 1 0 1 1 2 2
1 1 2 2 2 1 2
1 1 1 2 1 2 1

trigger_message表

file1=open("file1.txt","r")
matrix=[]
for line in file1:
    connect=line.split(" ")
    matrix.append(connect)
print(matrix)
if matrix[0][0]==matrix[0][1]==matrix[0][2]==matrix[0][3]: #this is only temporary, supposed to check for every element
    if matrix[0][0]==1:
        print("player 1 wins!")
    elif matrix[0][0]==2:
        print("player 2 wins!")
    else:
        print("no winner")
if matrix[0][0]==matrix[1][0]==matrix[2][0]==matrix[0][0]: #check for vertical matches
    if matrix[0][0]==1:
        print("player 1 wins!")
    elif matrix[0][0]==2:
        print("player 2 wins!") 
    else:
        print("no winner")

我有以下测试数据

trigger_keyword表

CREATE TABLE trigger_keyword
(
    id bigint NOT NULL,
    keyword_array text[],
    CONSTRAINT trigger_keyword_id PRIMARY KEY (id)
)

trigger_message表

CREATE TABLE trigger_message
(
    id bigint NOT NULL,
    message text NOT NULL,
    trigger_keyword_id bigint,
    CONSTRAINT trigger_message_id PRIMARY KEY (id)
)

如果id keyword_array ----------------------------------------------------- 1 {weather, climate} 中的关键字列为id message trigger_keyword_id ----------------------------------------------------- 1 yes, the weather is good 1 2 expect rain 1 3 partly cloudy 1 ,则以下查询将按预期方式工作,但如果列为trigger_keyword,则该查询不起作用

text

如何修改上面的查询以使用文本数组而不是文本?

使用文本数组,我可以轻松添加更多关键字,在这种情况下,“告诉我气候”也将返回trigger_message表中的行

我知道推荐的方法是使用桥表,但是对其进行编辑和匹配会变得很麻烦,所以我想改用数组。

0 个答案:

没有答案