我正试图通过我的数据库查询,以接收包含某个用户id作为帖子所有者或参与者的所有帖子。
我的数据库结构如下:

id: INT
media_id: INT
owner_id: INT
participants: STRING eg. [1,2]
comments: TEXT eg. [{},{}]

下面是两个示例条目:
id: 1, media_id: 2, owner_id: 1, participants: "[1,2]", comments: "[]"
id: 2, media_id: 3, owner_id: 2, participants: "[2,1]", comments: "[]"

我要实现的是获取id1的用户是列owner_idparticipants的一部分的所有行
我当前的查询如下所示:
SELECT * FROM posts WHERE owner_id = 1 OR participants IN "1"

我得到的结果是只有1的行是owner_id
我可能理解IN equasion错误,但1是两行参与者的一部分,因此我应该得到两行结果,不是吗?

最佳答案

如果您愿意将participants字段的数据结构更改为逗号分隔的值,例如1,22,1,则可以使用:
SELECT * FROM posts WHERE owner_id = 1 OR FIND_IN_SET(1, participants);

关于mysql - 列= val1或列IN值的mySQL WHERE子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34651778/

10-10 04:01