`
wangdf_jee
  • 浏览: 114684 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql LIKE 子句转义符处理

阅读更多
    MySQL 在字符串中使用的是C的转义句法(例如“\n”), 所以在   LIKE   字符串中使用的任何一个   “\”   必须被双写。 例如,为了查找   “\n”,必须以   “\\n”   形式指定它。为了查找   “\”,必须指定它为   “\\\\”   (反斜线被语法分析器剥离一次,另一次在模式匹配时完成,留下一条单独的反斜线被匹配)。
    private String   filtrateLikeSql(String value){
       if(null!=value){
         String newValue="";
         newValue=value.replaceAll("\\\\","\\\\\\\\");
         newValue=newValue.replaceAll("'","\\\\'");
         newValue=newValue.replaceAll("_","\\\\_");
          newValue=newValue.replaceAll("\"","\\\\\"");
          newValue=newValue.replaceAll("%","\\\\%");
         return newValue;
       }
       return value;
    }
    private String   filtrateNotLikeSql(String value){
       if(null!=value){
         String newValue="";
         newValue=value.replaceAll("\\\\","\\\\\\\\");
          newValue=newValue.replaceAll("\"","\\\\\"");
         return newValue;
       }
       return value;
    }
分享到:
评论

相关推荐

    MySQL数据库:模式匹配.pptx

    模式匹配主要通过`LIKE`或`NOT LIKE`运算符在`WHERE`子句中实现,适用于处理`char`、`varchar`、`text`、`datetime`等类型的字段。 1. **模式匹配符号**: - `%`:这个符号代表零个、一个或多个任意字符。例如,在...

    MySQL中使用replace、regexp进行正则表达式替换的用法分析

    这两个操作符用于在WHERE子句中进行模式匹配,与LIKE操作符类似,但regexp提供了更强大的模式匹配能力。当使用REGEXP进行匹配时,如果模式匹配被测试值的任何部分,它就认为匹配成功。这与LIKE不同,LIKE要求整个被...

    正则表达式MySQL参考文档

    在MySQL中,正则表达式主要用于`WHERE`子句中的`REGEXP`或`RLIKE`操作符,使得我们可以根据模式匹配来查询数据。 首先,我们需要了解正则表达式的基本语法。在MySQL中,正则表达式遵循Perl兼容正则表达式(PCRE)...

    Mysql数据库设计.pdf

    在MySQL中,字符串可能包含特殊字符,如NUL(\0)、单引号(')、双引号(")、退格(\b)、换行(\n)、回车(\r)、制表符(\t)和反斜杠(\)。为了正确表示这些特殊字符,我们需要使用反斜杠进行转义。 2. **数值列类型**: -...

    mysql模糊查询.pdf

    2. **ESCAPE 关键字**:如果你的查询字符串中包含 `%` 或 `_`,可以使用 `ESCAPE` 关键字来转义它们,避免被解释为通配符。例如,`LIKE '%\%' ESCAPE '\'` 会匹配包含百分号的字符串。 3. **INSTR 函数**:MySQL ...

    基于sqlite特殊字符转义的实现方法

    SQLite使用自定义的转义机制,不同于其他数据库系统如MySQL或PostgreSQL使用反斜杠`\`作为转义字符。在SQLite中,转义字符是`/`,即在需要转义的特殊字符前加上一个`/`。例如,要查找包含`%`字符的记录,应将查询中...

    Python处理mysql特殊字符的问题

    总的来说,处理MySQL特殊字符时,要确保对字符串进行适当的转义或使用参数化查询,同时注意对`LIKE`子句中的百分比符号的处理,以及字段名与关键字的冲突。使用Python的数据库适配器提供的安全功能,可以避免许多...

    sql server数据库模糊查询语句

    6. 在 MySQL 中,不能使用 "\" 作为转义符,而是使用其他字符,如 '!'. 7. 创建表和插入数据: CREATE TABLE a (name VARCHAR(10)) GO INSERT INTO a SELECT '11%22' UNION ALL SELECT '11%33' UNION ALL SELECT '...

    MySQL的保留字.pdf

    3. BETWEEN:用于在WHERE子句中指定范围的SQL操作符。 4. CALL:调用存储过程的SQL命令。 5. CHANGE:在ALTER TABLE语句中用于改变现有列的数据类型或列名。 6. CHECK:用于定义约束,确保数据满足特定条件。 7. ...

    mysql基础1

    若要匹配特殊字符,可以使用`ESCAPE`关键字定义转义字符,例如`SELECT * FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';`。 `BETWEEN`关键字用于指定一个范围,如`SELECT * FROM employees WHERE ...

    MySQL学习笔记分享

    `BETWEEN`和`LIKE`用于范围查询和模糊匹配,例如`LIKE`可以用于查找包含特定模式的数据,但在匹配下划线 (_) 时需要进行转义,写为`\_%`。`ORDER BY`用于排序结果,`GROUP BY`则用于对数据进行分组,配合`HAVING`...

    MySQL海量数据查询优化策略.

    在处理MySQL海量数据查询优化时,我们需要关注的策略包括但不限于以下几点: 1. 优化索引使用:避免全表扫描至关重要。为此,应当在查询条件(WHERE)和排序(ORDER BY)涉及的列上创建索引。索引有助于数据库管理...

    Mysql数据库初级.docx

    - 使用转义字符`\`或`ESCAPE`来处理特殊字符: ```sql SELECT * FROM 表名 WHERE 字段 LIKE '_\_%'; -- 使用默认转义字符 SELECT * FROM 表名 WHERE 字段 LIKE '_$_%' ESCAPE '$'; -- 指定转义字符 ``` - **...

    PHP & MySQL 初级教程

    5. **条件查询**:使用`WHERE`子句进行条件过滤,`LIKE`用于模糊匹配,`BETWEEN`用于范围查找。 6. **连接操作**:在PHP中,使用`mysqli_connect`或`PDO`类建立与MySQL服务器的连接,`mysqli_query`执行SQL语句。 ...

    mysql_note (3)(1).doc

    - 特殊比较运算符如`BETWEEN`用于指定范围,`IN`用于检查值是否在给定列表内,`LIKE`则支持模糊匹配,配合`%`和`_`通配符使用,还可以通过`ESCAPE`来定义转义字符。 在实际操作中,应尽量避免录入`NULL`值,并合理...

    mysql 面试题.pdf

    - **预防措施** 包括使用参数化查询、转义特殊字符等。 5. **什么是视图(View)?在业务中通常用它来做什么?** - **视图** 是基于SQL查询的结果集的虚拟表。 - **用途** 包括简化复杂查询、保护数据等。 6. *...

    Mysql语法、特殊符号及正则表达式的使用详解

    正则表达式在MySQL中用于复杂模式匹配,例如在`LIKE`或`REGEXP`操作符后使用。正则表达式可以进行更复杂的文本搜索,如查找所有以特定字符串开头的记录。例如,`SELECT * FROM users WHERE username REGEXP '^john';...

    解析 SQL 中的字符串.rar_SQL 解析_sql

    如果字符串本身包含引号,需要使用转义字符(\)来处理,如`'He said, \"Hello!\"'`。 3. 字符串拼接: 使用CONCAT函数可以将多个字符串合并为一个。例如:`CONCAT('Hello', ' ', 'World')`会产生'Hello World'的...

    数据从MySQL迁移到Oracle 需要注意什么

    在迁移过程中,需要确保字符串中的单引号被正确转义,或者使用工具自动处理。 3. **长字符串处理**: Oracle的VARCHAR2类型最大长度为4000个字节,如果需要存储更长的字符串,应使用CLOB类型,并在插入或更新时...

Global site tag (gtag.js) - Google Analytics