2017-05-06 35 views
0

這是我在stackoverflow上的第一個問題,請隨時在適當的甲酸編輯,我想寫一個查詢在mysql中返回所有搜索ID的唯一列表一個包含ID數組的表。MySql獲取列中的每個id在列中搜索id是一個數組

比如我有一個表(event_tbl),其中有三列

  1. ID
  2. peopleWhoWillAttend
  3. eventName的

現在可以說我有三排這三個值

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

歡迎搜索堆棧溢出。你應該去[幫助部分](http://stackoverflow.com/help)然後閱讀[我應該避免詢問什麼類型的問題?](http://stackoverflow.com/help/on-topic)是確定你的問題符合規則,然後閱讀[如何在StackOverflow上提出問題](http://stackoverflow.com/help/how-to-ask),以便能夠相應地改進您的問題並獲得最佳幫助。 –

+0

請記住,「__write/debug-my-code__」,「__recommend/search-something-for-me__」,「__tutorial__」請求和「__low-effort__」,「__unclear__」,「__opinion-based__」,「 *非編程相關**「的問題是[Stack Overflow的主題](http://stackoverflow.com/help/on-topic)。 –

+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') 
+0

嗨伊恩,謝謝你的幫助,這是一個非常大的項目,這只是一個例子,所以我現在不能改變表結構,因爲它可能需要很長的時間。如果你有相同的解決方案,那就太好了。謝謝 –