mysql中现有一个house表id  name    addr    dev
1 万达星城  红谷滩  万达公司
2 中山名座    东湖   恒发公司现要做一个搜索提示功能,
如用户 输入 ,需提示出 中山名座 (只查一个字段的,已实现)如输入 万达,就要弹出 万达星成 万达公司 这二个(有多个字段的,不知怎么下手)也就是要每个字段都要检索,用 or 查询不太方便, 这怎么实现呀.thanks

解决方案 »

  1.   

    $sql="select * form house where contat(name,addr,dev) like "万达%";
      

  2.   

    $sql="select * form house where contat(name,addr,dev) like "万达%";写错了
    $sql="select * form house where concat(name,addr,dev) like "万达%";
      

  3.   

    多谢大家
    可2楼的sql还是运行不了。
      

  4.   

    $sql="select * from house where concat(name,addr,dev) like "万达%"; //不是form!
      

  5.   

    $sql="select * from house where concat(name,addr,dev) like '"%关键字%"'"; 
      

  6.   

    输出的记录是空,
    上面的sql好像没什么用,
      

  7.   

    使用 concat 需保证成员参数均不为NULLCONCAT(str1,str2,...) 
    将参数连接成字符串返回。如果有任何一个参数为 NULL,返回值也为 NULL。可以有超过 2 个的参数。数字参数将被转换为相等价的字符串形式: 
    mysql> SELECT CONCAT('My', 'S', 'QL');
            -> 'MySQL'
    mysql> SELECT CONCAT('My', NULL, 'QL');
            -> NULL
    mysql> SELECT CONCAT(14.3);
            -> '14.3'
      

  8.   

    SELECT * 
    FROM house
    WHERE concat( '|', name, '|', addr, '|', dev, '|' ) LIKE '%|万达%|%'
    本地测试了一下,可以的
      

  9.   

    兄弟你在做搜索吧...我觉得这是用like的话不太好
    建议你用哈子sphinx吧。。挺好的一个搜索
      

  10.   

    现把 所有记录放到一个总表中了
    再用httpcws分词,再来查询