数据库中的escape是什么意思,怎么用的?

数据库中的escape是什么意思,怎么用的?,第1张

用来转译的,比如数据库中有个表

test字段name

中存了字符'%',那么我查询的时候如果想查询第二位是

'%'的记录就要用到模糊查询,但是'%'是模糊查询的通配符,我不能如下查询:

select

*

from

test

where

name

like

'_%%'

这样系统不会把第二个【%】当做字符,只能转译,转译默认的符号是

【\】

select

*

from

test

where

name

like

'_\%%'

但是可以自定义转义符,这时候就用

escape,比如定义【*】为转义符

select

*

from

test

where

name

like

'_*%%'

escape

'*'

---

以上,希望对你有所帮助。

定义:escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原

来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。

实例:

SQL>select * from t11 where name like '%_%'

NAME

----------

aa_a

aaa

SQL>select * from t11 where name like '%\_%' escape '\'

NAME

----------

aa_a

注意:如果是 '/' 作为检索字符, 必须 用 '/' 作为转义符, 正斜扛也一样.

select * from wan_test where psid like '%//%' escape '/'

SqL中使用   ESCAPE   关键字定义转义符。当转义符置于通配符之前时,该通配符就解释为普通字符。例如:

1,要搜索“A_”开头的所有内容,请使用下列语句。句中通过escap将“_”转义,否则“_"为一个字符的通配符。

2,查找"%aa"开头的所有内容,语为如下。下例语句中第一个"%"仍为通配符“%”,第二个通过“/”将后边的“%”转义为“%”,而不是通配符。

使用SQL语句查询是开发中常做的事,在实际的情况中,可能会遇到,查询包含某个关键词的所有行,而这个关键词正好也是SQL SERVER的关键词。

下面有一张表Member,有如下的数据:

假如需要查询名字中包含%字符的数据,首先我们会有这样的查询语句:

SELECT * FROM dbo.Member WHERE Name LIKE '%%%'。

但是由于%在SQL SERSER中是关键字,此时需要转义,没有转义的写法可以如下:

SELECT * FROM dbo.Member WHERE Name LIKE '%[%]%'。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6768796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存