【问题标题】:How to use Single Quote with ESCAPE in SQL server如何在 SQL Server 中使用单引号和 ESCAPE
【发布时间】:2017-06-12 07:09:53
【问题描述】:

请帮助我理解下面的 SQL 服务器查询将做什么

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

我的下一个直接问题 - 如何在 HQL 中实现同样的效果,我可以在 HQL 中使用转义吗?

【问题讨论】:

  • 你认为这个查询会做什么?
  • 您要这样做吗? WHERE name LIKE '%O''Brien%';?如果是这样,为什么需要ESCAPE 关键字?只需将值中的单引号加倍 - 或者,如果 HQL 足够专业以支持适当的强类型参数,您甚至不需要担心它......
  • 我需要将单引号作为值转义,如果单引号在字符串中,则忽略它

标签: sql-server hibernate sql-server-2008 hql hibernate-criteria


【解决方案1】:

此查询返回表emp 的所有记录,其中empName 字段中包含'escape'

“%”符号用于定义模式前后的通配符(缺少字母)

this链接。

希望对您有所帮助!

【讨论】:

    【解决方案2】:

    它将返回 emp 表中的所有内容,其中 empName 列包含一个在某处包含 '' escape '' 的值。

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

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

    考虑这个例子来做类似的事情。

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

    这是在字符串John Smith中寻找字母Sm

    转义单引号对于HQLI have found 相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      相关资源
      最近更新 更多