模糊查询与转义字符

模糊查询与转义字符

ID:21931531

大小:27.50 KB

页数:6页

时间:2018-10-25

模糊查询与转义字符_第1页
模糊查询与转义字符_第2页
模糊查询与转义字符_第3页
模糊查询与转义字符_第4页
模糊查询与转义字符_第5页
资源描述:

《模糊查询与转义字符》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQL模糊查询语句和Escape转义字符.SQL模糊查询语句和Escape转义字符(2008-09-2214:26:01)标签:from转义字符sql单引号通配符escapeit通配符描述示例%包含零个或更多字符的任意字符串。WHEREtitleLIKE'%computer%'将查找处于书名任意位置的包含单词computer的所有书名。_(下划线)任何单个字符。WHEREau_fnameLIKE'_ean'将查找以ean结尾的所有4个字母的名字(Dean、Sean等)。[]指定范围([a-f])或集合([abcdef

2、])中的任何单个字符。WHEREau_lnameLIKE'[C-P]arsen'将查找以arsen结尾且以介于C与P之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen等。[^]不属于指定范围([a-f])或集合([abcdef])的任何单个字符。WHEREau_lnameLIKE'de[^l]%'将查找以de开始且其后的字母不为l的所有作者的姓氏。将通配符作为文字使用可以将通配符模式匹配字符串用作文字字符串,方法是将通配符放在括号中。下表显示了使用LIKE关键字和[]通配符的示例。符号含

3、义LIKE'5[%]'5%LIKE'[_]n'_nLIKE'[a-cdf]'a、b、c、d或fLIKE'[-acdf]'-、a、c、d或fLIKE'[[]'[LIKE']']LIKE'abc[_]d%'abc_d和abc_deLIKE'abc[def]'abcd、abce和abcfSQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:1、LIKE'Mc%'将搜索以字母Mc开头的所有字符串(如McBadden)。2、LIKE'%inger'将搜索以字母inger结尾的所有字符串(如Ringer、Stri

4、nger)。3、LIKE'%en%'将搜索在任何位置包含字母en的所有字符串(如Bennet、Green、McBadden)。4、LIKE'_heryl'将搜索以字母heryl结尾的所有六个字母的名称(如Cheryl、Sheryl)。5、LIKE'[CK]ars[eo]n'将搜索下列字符串:Carsen、Karsen、Carson和Karson(如Carson)。6、LIKE'[M-Z]inger'将搜索以字符串inger结尾、以从M到Z的任何单个字母开头的所有名称(如Ringer)。7、LIKE'M[^c]%'将搜

5、索以字母M开头,并且第二个字母不是c的所有名称(如MacFeather)。Escape转义字符用户输入如果没有任何限制的话,则必须对特殊字符进行变换。如果对单引号不进行变换,则会发生数据库错误,甚至可能导致系统崩溃。不过回避方法却非常简单,只要将单引号[']转换成两个单引号['']就可以了。例:SELECT*FROMTBLWHERECOL='ABC''DEF';模糊查询的语句虽然不会发生SQL错误,但是不进行回避的话,则无法得到要检索的值。回避方法较单引号复杂。需要使用转义符。将[%]转为[/%]、[_]转为[/_]

6、,然后再加上[ESCAPE'/']就可以了。例:SELECT*FROMTBLWHERECOLLIKE'ABC/%/_%'ESCAPE'/';※最后一个%是通配符。如果做日文项目的话,会出现全角字符的[%]、[_],而这两个全角字符同样会作为半角通配符处理。所以在变换时,同时需要将全角的[%]、[_]进行变换。例:SELECT*FROMTBLWHERECOLLIKE'ABC/%/_/%/_%'ESCAPE'/';变换成这样似乎结束了,可是不要忘了还有转义符自身,万一用户输入转义符的话,以上的处理就会发生SQL错误。所以

7、也必须对转义符进行变换。变换方法就是将[/]转换为[//]。例:SELECT*FROMTBLWHERECOLLIKE'ABC/%/_/%///_%'ESCAPE'/';以上的操作都针对于一般的数据类型,如CHAR、VARCHAR2。如果出现NCHAR、NVARCHAR2的话,以上的处理就会出现ORA-01425错误。如果改成以下写法,则会发生ORA-01424错误。SELECT*FROMTBLWHERECOLLIKE'%/_%'ESCAPETO_NCHAR('/')正确的写法应该是SELECT*FROMTBLWHER

8、ECOLLIKEC'%/_%'ESCAPETO_NCHAR('/')最后要说明的是每个like都应该写ESCAPE语句。例:SELECT*FROMTBLWHERECOL1LIKE'%/_%'ESCAPE'/'ORCOL2LIKE'%/_%'ESCAPE'/'SQL>select*fromtest;TEST--------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。