zoukankan      html  css  js  c++  java
  • SQL SERVER 使用ESCAPE转义

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

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

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

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

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

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

    转义的写法如下,使用ESCAPE指定转义符:

    SELECT * FROM dbo.Member WHERE Name LIKE '%~%%' ESCAPE '~'

    在项目中使用Entity Framework时,比如名称是否包含%,则DBContext.Set<Member>().Where(m => m.Name.Contains("%")),然后使用SQL Profiler可以看出Entity Framework生成的SQL是使用了~作为转义符。开发中如果是我们手写SQL(非ORM自动生成),转义符可以自由指定,例如:

  • 相关阅读:
    网络通信
    jvm调优
    rokectMq
    mybatis属性类
    spring cloud feign
    spring cloud hystrix
    spring cloud ribbon
    mybatis(二)创建代理类执行sql
    内存操作函数
    堆空间的开辟与使用
  • 原文地址:https://www.cnblogs.com/godbell/p/7643260.html
Copyright © 2011-2022 走看看