分享

SQL模糊查询

 zjsxShenwx 2008-02-28
 SQL模糊查询     CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
SQL提供了四种匹配模式:
    1. %
表示任意0个或多个字符。如下语句:
        SELECT * FROM user WHERE name LIKE ';%
%';
   
将会把name张三三脚猫唐三藏等等有的全找出来;
   
    2. _
表示任意单个字符。语句:
        SELECT * FROM user WHERE name LIKE ';_
_';
   
只找出唐三藏这样name为三个字且中间一个字是的;
        SELECT * FROM user WHERE name LIKE ';
__';
   
只找出三脚猫这样name为三个字且第一个字是的;
   
    3.
[ ] 表示括号内所列字符中的一个(类似与正则表达式)。语句:
        SELECT * FROM user WHERE name LIKE ';[
张李王]';
   
将找出张三李三王三(而不是张李王三);
       
   
[ ] 内有一系列字符(01234abcde之类的)则可略写为“0-4”“a-e”
        SELECT * FROM user WHERE name LIKE ';
[1-9]';
   
将找出1”2”……9”
   
如要找“-”字符请将其放在首位:';张三[-1-9]';
   
    4.
[ ] 表示不在括号所列之内的单个字符。语句:
        SELECT * FROM user WHERE name LIKE ';[
张李王]';
   
将找出不姓赵三孙三等;
        SELECT * FROM user WHERE name LIKE ';
[1-4]';
   
将排除1”4”寻找5”6”……9”
   
   
!最后是重点!
   
由于通配符的缘故,导致我们查询特殊字符“%”“_”“[”“';”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
   
    function sqlencodestr
     str=replacestr,'';','';';'
     str=replacestr,'[','[[]' ';
此句一定要在最先
     str=replacestr,'_','[_]'
     str=replacestr,'%','[%]'
     sqlencode=str
    end function
   
   
在查询前将待查字符串先经该函数处理即可。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多