我正试图通过我的数据库查询,以接收包含某个用户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: "[]"
我要实现的是获取id
1
的用户是列owner_id
或participants
的一部分的所有行我当前的查询如下所示:
SELECT * FROM posts WHERE owner_id = 1 OR participants IN "1"
我得到的结果是只有
1
的行是owner_id
我可能理解IN equasion错误,但
1
是两行参与者的一部分,因此我应该得到两行结果,不是吗? 最佳答案
如果您愿意将participants
字段的数据结构更改为逗号分隔的值,例如1,2
或2,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/