如何select行基于数组postgresql中的数据
How to select row based on data in array postgresql
我正在尝试 select postgresql 中的一行 table 基于该行数组中的数据。
这是两个 table:
Table 1: 用户
users
---
username
text
password
text
Table 2:聊天
chats
---
room_id
serial
users
text[]
messages
json[]
假设我有一个用户名为“Hello_world1”的用户,我想获取该用户的所有聊天记录。我会说“SELECT * FROM chats WHERE users contains “Hello_world2” 我试过“SELECT * FROM chats WHERE users[1] = “Hello_world2”,但是这不会长期有效,因为这意味着我将不得不创建另一个与这个相同的聊天,但在 users[1].
中使用另一个用户的名字
我找到了解决办法!
这里是查询:
SELECT * FROM chats WHERE "Hello_world1" = ANY (users)
翻译:
如果用户数组中的任何用户 =“Hello_world1”
,则从聊天中抓取每一行
我正在尝试 select postgresql 中的一行 table 基于该行数组中的数据。 这是两个 table:
Table 1: 用户
users | --- |
---|---|
username | text |
password | text |
Table 2:聊天
chats | --- |
---|---|
room_id | serial |
users | text[] |
messages | json[] |
假设我有一个用户名为“Hello_world1”的用户,我想获取该用户的所有聊天记录。我会说“SELECT * FROM chats WHERE users contains “Hello_world2” 我试过“SELECT * FROM chats WHERE users[1] = “Hello_world2”,但是这不会长期有效,因为这意味着我将不得不创建另一个与这个相同的聊天,但在 users[1].
中使用另一个用户的名字我找到了解决办法!
这里是查询:
SELECT * FROM chats WHERE "Hello_world1" = ANY (users)
翻译:
如果用户数组中的任何用户 =“Hello_world1”
,则从聊天中抓取每一行