这是我关于stackoverflow的第一个问题请随意编辑正确的格式,我想在mysql中编写一个查询,从包含id数组的表中返回所有搜索id的唯一列表。
例如,我有一个表(event_tbl
),其中有三列
现在假设我有三行这三个值
id peopleWhoWillAttend eventName
1 [1] 'event1'
2 [1,2,3] 'event2'
3 [3] 'event3'
现在,如果我搜索peopleWhoWillAttend [1,3](这可能是更长的数组不仅[1,3]),它应该给出结果
id eventName
1 'event1'
2 'event2'
2 'event2'
3 'event3'
或者说我有一行这些值
id peopleWhoWillAttend eventName
1 [1,2,3] 'event2'
现在选择应该给出结果的方式
id peopleWhoWillAttend eventName
1 1 'event2'
1 2 'event2'
1 3 'event2'
答案 0 :(得分:0)
最佳做法是通过为peopleWhoWillAttend使用唯一行来使用数据库的强大功能。
而不是你的行
为每个条目使用唯一行:
id | peopleWhoWillAttend | eventName
-- | ------------------- | ---------
1 | 1 | event1
2 | 1 | event2
3 | 2 | event2
4 | 3 | event2
5 | 3 | event3
然后通过
搜索该表SELECT id, eventName
FROM *tablename*
WHERE peopleWhoWillAttend='1' OR peopleWhoWillAttend ='3'
或者使用
SELECT id, eventName
FROM *tablename*
WHERE peopleWhoWillAttend IN ('1','3')