2011-03-26 102 views
0

我正在做一個項目,我將在MySQL表中存儲數組/列表,並對列表中的信息進行基於PHP的搜索。
我如何基本上認爲這樣做將是把數據是這樣的:在MySQL中處理多個數組數據的最佳方法?

column1 
,2,6,9,30, 
,3,5,8, 
,5,6,13,16,17, 

column2 
,b,g,k,ro, 
,c,e,t, 
,d,h,i,ar,ez, 

然後搜索這樣的:

SELECT * FROM table_name WHERE column1 LIKE '%,3,%' OR column2 LIKE '%,h,%' 

但我可能必須尋找在列1五個項目和在第二列三,這將使查詢很長,可能很慢?..

我想知道的是,這是一個聰明的方式來做到這一點?有沒有更快和/或更好的方法?..

讓我知道如果你有問題,或者我不夠清楚。

回答

4

如果我理解正確,那麼使DB結構更好地匹配數組而不是存儲字符串數組會更有意義。例如,您可以使用「LIST」和「LIST_ITEM」表,並將外鍵從LIST_ITEM.LIST_ID轉換爲LIST.LIST_ID。 List_Item中的每個條目都是該列表中的條目。然後,對那些列表項的查詢可以返回哪些列表,比不得不遍歷長字符串和比較字符要快得多。

+0

好吧,弄糊塗了,以爲你提到了一個名爲「LIST」的函數,但是,聽起來不是一個壞主意,我想我會像這樣構建它,謝謝。 :) – 2011-03-26 23:40:59

相關問題