不知道你是如何“以数组的形式储存在数据库里面的”?
不过既然是数组,那么就可以用array_merge把数组合并在一起,用array_unique去掉数组中的重复元素

解决方案 »

  1.   

    是这样的,我是把关键字以空格隔开,储存在一个字段里面,用的时候拿出来,用explode变成数组,所以我说是以数组形式储存在数据库里面,说错了,请问老大,有什么思路可以指点一下我吗?
      

  2.   

    我觉得每篇文章储存一个关键字(about),然后显示一篇文章的时候:
    select * from article where about(关键字字段) like 这篇文章的关键字 limit n这样不就可以了吗?
      

  3.   

    无论关键字有多少,id是不重复的,你把不同关键字的新闻放到不同的数组
    过滤重复的id就足够了,以关键字来过滤数组是比较笨的办法
    关键字是用来select的,不是key,id才是key
      

  4.   

    关键字这么存key1|key2|key3....
    搜索的时侯只要like就可以了。怎么会重复呢??
      

  5.   

    1|2|3 和1|2|4 怎么 like?
      

  6.   

    ft~``
    select * from article where ('1' like '%1 2 4%' or '2' like '%1 2 4%' or '3' like '%1 2 4 %')
    这样不可以吗?当然上面的1 2 4是字段名,不可能在SQL里面写死的~``
      

  7.   

    <?
    select distinct * from news where (key like 1) or (key like 2) or (key like 3)limit 0,5
    ?>
    行不?