mysql数据库中,有 个 est 表
id  name 
1   赣抚北路 
2   中国路
3   上海路现想通过 输入  南赣抚北路16号  把 赣抚北路  (南赣抚北路16号 含有 赣抚北路)这条记录查出来,
如何实现呀,
thanks

解决方案 »

  1.   

    这种搜索单独靠php+mysql不行吧,需要语义方面的东西了,分词过滤之后再查库
      

  2.   

    SELECT * from est where name = LEFT('南赣抚北路16号', 5);mysql 有很多截取函数的
      

  3.   

    貌似不对 嘿嘿换个截取函数 截取到路为止。 也可以直接在PHP代码里面截取 这样方便 
      

  4.   

    select * from est where  LOCATE(name,"南赣抚北路16号")
      

  5.   

    多谢大家,
    赣抚北路 去查  南赣抚北路16号 的记录,(南赣抚北路16号 含有 赣抚北路 )
    是不是就用like呀,
      

  6.   

    select * from est where name like "%赣抚北路%";
      

  7.   

    要使用到分词扩展,需要在php环境里装一个scws中文分词系统,他的官网上面有仔细的用法
    其他也有不用装dll扩展的分词系统,但是我觉得还是scws的词库多,查询速度快
      

  8.   

    dede 的分词算法写的不错 可以参考 
      

  9.   

    楼上几位大侠请注意,楼主的 est 表已然是关键词表了select * from est where '南赣抚北路16号' like concat('%', name, '%')