我有一个表,大概有uri, filename ,number 这几个字段我输入一个bai + 空格 + mp3,他能查询出uri,filename以及number有bai和mp3的结果集,请问这sql怎么写。ps:http://baids.sds.mp3是可以被查出来的,但http://baids.sd.mp4是不能被查出来的

解决方案 »

  1.   

    需要对输入值进行一下处理-- 方法一,对输入顺序有要求,如mp3+空格+bai就不行
    SELECT * FROM 表 WHERE uri LIKE '%bai%mp3%' AND filename LIKE '%bai%mp3%' AND number LIKE '%bai%mp3%'
    -- 方法二
    SELECT * FROM 表 WHERE uri LIKE '%bai%' AND filename LIKE '%bai%' AND number LIKE '%bai%' AND uri LIKE '%mp3%' AND filename LIKE '%mp3%' AND number LIKE '%mp3%'
      

  2.   

    你可以用正则匹配
    ... regexp 'bai.*mp[34]'
      

  3.   


    字段之间似乎应该用or,不应该用and
      

  4.   

    使用lucene吧