MySQL之模糊查询特殊字符处理方式

 更新时间:2023年08月31日 17:06:46   作者:完美明天cxp  
这篇文章主要介绍了MySQL之模糊查询特殊字符处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySQL模糊查询特殊字符处理

模糊查询字段输入一个%,查出了所有数据

SELECT * FROM region_info WHERE region LIKE '%%%';

目标结果应该返回region属性包含%的结果集:

然而(部分结果集):

原因

MySQL有一些特殊字符需要进行转义,模糊查询中%、_是属于匹配规则特殊字符,单引号'和转义字符\也需要处理

解决办法

需要查询内容进行转义,如:

SELECT * FROM region_info WHERE region LIKE '%\%%';

正确结果集:

代码中查询,处理查询内容工具类:

public class MySQLUtil {
    /**
     * sql特殊字符转义
     *
     * @param content 转义内容
     * @return 转义后内容
     */
    public static String escape(String content) {
        if (content != null && !content.trim().isEmpty()) {
            content = content.replaceAll("\\\\", "\\\\\\\\");
            content = content.replaceAll("_", "\\\\_");
            content = content.replaceAll("%", "\\\\%");
            content = content.replaceAll("'", "\\\\'");
        }
        return content;
    }
}

MySQL模糊查询时无法匹配中文的解决

问题描述

在开发中遇到了一个问题,就是在使用Text文本框当作筛选条件进行模糊查询时,无法匹配text文本框的中文字符,但是英文和数字都可以正常筛选,于是怀疑是哪里的配置文件配置没有加上UTF-8。

解决方案

通过查看修改两个配置文件解决了这个问题。

1.查看数据库连接的配置文件在你的项目下找到连接数据库的配置文件,一般为 url=jdbc…形式,

如下文件:

在你的项目名称,也就是?后面,查看是否有加上了UTF-8

2.找到你的tomcat 安装位置,在安装位置的conf文件夹下找到一个名为 server.xml的文件,打开修改。

如上图,查看你是否加上了 URIEncoding=“UTF-8” 。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • QT连接Mysql数据库的详细教程(亲测成功版)

    QT连接Mysql数据库的详细教程(亲测成功版)

    被Qt连接数据库折磨了三天之后终于连接成功了,记录一下希望对看到的人有所帮助,下面这篇文章主要给大家介绍了关于QT连接Mysql数据库的详细教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • MySQL 5.6 如何更改安全的处理密码探讨

    MySQL 5.6 如何更改安全的处理密码探讨

    MySQL 5.6将会自动的在日志中隐藏密码信息,接下来为你详细介绍下MySQL 5.6 如何更安全的处理密码,感兴趣的你可以参考下哈,希望可以帮助到你
    2013-03-03
  • 增删改查sql语法基础教程

    增删改查sql语法基础教程

    为了准备面试,整理了一些SQL基本语句和自己的理解,作为备份,下面这篇文章主要给大家介绍了关于增删改查sql语法基础教程的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • MySQL安装第四步报错(initializing database报错)的图文解决方法

    MySQL安装第四步报错(initializing database报错)的图文解决方法

    这篇文章主要给大家介绍了关于MySQL安装第四步报错(initializing database报错)的解决方法,"initializing database" 通常出现在安装MySQL的过程中,表示MySQL数据库初始化过程中遇到了问题,需要的朋友可以参考下
    2024-06-06
  • union和子查询中order by一起使用导致排序失效问题及解决

    union和子查询中order by一起使用导致排序失效问题及解决

    这篇文章主要介绍了union和子查询中order by一起使用导致排序失效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySql数据库基础之子查询详解

    MySql数据库基础之子查询详解

    所谓子查询是指在一个查询中嵌套了其他的若干查询,即在一个SELECT查询语句的WHERE或FROM子句中包含另一个SELECT查询语句,下面这篇文章主要给大家介绍了关于MySQL子查询的相关资料,需要的朋友可以参考下
    2022-09-09
  • MySQL删除binlog日志文件的三种实现方式

    MySQL删除binlog日志文件的三种实现方式

    本文介绍了三种删除MySQL binlog日志文件的方法,包含手动删除、使用SQL命令删除和设置自动清理,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • MySQL查询优化:用子查询代替非主键连接查询实例介绍

    MySQL查询优化:用子查询代替非主键连接查询实例介绍

    对多的两张表,一般是一张表的外键关联到另一个表的主键,接下来为大家介绍下用子查询代替非主键连接查询,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-04-04
  • MySQL中的insert ignore into使用

    MySQL中的insert ignore into使用

    这篇文章主要介绍了MySQL中的insert ignore into使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 老生常谈mysql event事件调度器(必看篇)

    老生常谈mysql event事件调度器(必看篇)

    下面小编就为大家带来一篇老生常谈mysql event事件调度器(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论