2017-01-26 39 views
-1

请帮我理解这下面的SQL Server查询会做如何使用单引号与ESCAPE在SQL服务器

SELECT * from emp e where e.empName like '%'' escape ''%' 

我的下一个迫切的问题 - 如何实现相同的HQL,是我能在HQL使用转义?

+1

你认为该查询会做什么? –

+1

你想要做这个吗? '在哪里名字像%'O''Brien%';'?如果是这样,为什么你需要'ESCAPE'关键字?只需将价值中的单引号加倍 - 或者,如果HQL足够专业以支持正确的强类型参数,那么您甚至不需要担心它... –

+0

我需要转义单引号作为值,如果它在字符串中,则忽略单个报价 – Thiru

回答

0

该查询将返回表emp的所有记录,并在empName字段中包含'escape'

的“%”符号是用来定义之前和模式

this链接后通配符(失踪字母)。

希望得到这个帮助!

0

它将返回emp表中的所有内容,其中empName列包含值为'' escape ''的值。

select 1 where 'this string contains '' escape '' in it' like '%'' escape ''%' 

这是很奇怪的,因为在你的搜索参数的双引号的......但这是因为在字符串中的引号必须用单引号进行转义。

考虑一下类似的例子。

select 1 where 'John Smith' like '%Sm%' 

这是寻找字符串John Smith

在信Sm逃逸单引号是HQL对于同什么I have found