(SELECT * FROM mytable WHERE name LIKE '%$findto%')
UNION
(SELECT * FROM mytable WHERE key LIKE '%$findto%')
不知道你这出现的次数是啥意思,难道指的是按name搜索的多就排在前面,按key搜索的多key就排在前面。

解决方案 »

  1.   


    (SELECT * FROM mytable WHERE name LIKE '%$findto%')
    UNION
    (SELECT * FROM mytable WHERE `key` LIKE '%$findto%')
      

  2.   

    楼主的问题,SQL应该写不出来的,只能用PHP代码来分析、排序。SELECT * FROM mytable WHERE name LIKE '%$findto%'
    上面这句可以得到Name中含有$findto,先显示出来,这个很简单,没问题了。再用下面的SQL读出Key中含有$findto的记录。
    "select * from mytable WHERE key like '%$findto%'"
    再对查询出来的记录集做分析、排序,把key中含有比较多$findto的放到上面。给你大概说下我想到的分析方法:
    我是想把最后得到的数组餿倒序排。
    计算key中含有多少个$findto,比如得到是$x个,给数组加个“字段”order_num,值为$x。最后按order_num倒序排就可以了。
      

  3.   


    你的相法是不可能的你不太可能计算出一个字段中的词频数,所以意义不太,
    其他的做法一一个字段name,一个字段值,将你要找的值具体化,在value只一个值如果只是统计字段词频,可参照一下http://topic.csdn.net/u/20080508/17/6f088646-decc-4aa9-9371-4692b99d5413.html
      

  4.   

    4楼,你说的是中文么?“其他的做法一一个字段name,一个字段值,将你要找的值具体化,在value只一个值”????在讲什么?
    还有,你帖的帖子和楼主要的都不一样。。