2011-03-26 101 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

相关问题