MySql获取列中每个id的列表,其中search为数组

时间:2017-05-06 12:39:48

标签: php mysql database

这是我关于stackoverflow的第一个问题请随意编辑正确的格式,我想在mysql中编写一个查询,从包含id数组的表中返回所有搜索id的唯一列表。

例如,我有一个表(event_tbl),其中有三列

  1. ID
  2. peopleWhoWillAttend
  3. eventName的
  4. 现在假设我有三行这三个值

    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'
    

1 个答案:

答案 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')