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” 。

总结

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

相关文章

  • 为什么代码规范要求SQL语句不要过多的join

    为什么代码规范要求SQL语句不要过多的join

    SQL中的join可以根据某些条件把指定的表给结合起来并将数据返回给客户端,那么在项目开发中如果需要使用join语句,如何优化提升性能?本文就来详细的介绍一下
    2021-06-06
  • mysql按天/小时/半小时/N分钟/分钟进行数据分组统计功能

    mysql按天/小时/半小时/N分钟/分钟进行数据分组统计功能

    我们在做项目或者数据分析时,经常遇到这样的需求:统计不同时间粒度下的数据分布情况,例如,每一天中每个小时网站的访问量,某路口每半个小时通过的车辆数量等,下面给大家分享mysql按天/小时/半小时/N分钟/分钟进行数据分组统计功能,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • mysql实现游标分页的方法详解

    mysql实现游标分页的方法详解

    这篇文章主要为大家详细介绍了mysql实现游标分页的相关方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-10-10
  • MySQL 8.0.23 主要更新一览(新特征解读)

    MySQL 8.0.23 主要更新一览(新特征解读)

    这篇文章主要介绍了MySQL 8.0.23 主要更新一览(新特征解读),需要的朋友可以参考下
    2021-01-01
  • centos7中如何利用crontab进行mysql定时备份

    centos7中如何利用crontab进行mysql定时备份

    crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令,下面这篇文章主要给大家介绍了关于centos7中如何利用crontab进行mysql定时备份的相关资料,需要的朋友可以参考下
    2022-02-02
  • MySQL中锁的相关问题

    MySQL中锁的相关问题

    这篇文章主要介绍了MySQL中锁的相关问题,本文给大家介绍了从对数据操作的粒度分 ,从对数据操作的类型分,给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • MySQL 中MATCH 全文搜索关键字示例详解

    MySQL 中MATCH 全文搜索关键字示例详解

    这篇文章主要介绍了MySQL 中MATCH 全文搜索关键字详解,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-09-09
  • 关于JDBC与MySQL临时表空间的深入解析

    关于JDBC与MySQL临时表空间的深入解析

    这篇文章主要给大家介绍了关于JDBC与MySQL临时表空间的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • Navicat连接MySQL提示1045错误解决(重置MySQL密码)

    Navicat连接MySQL提示1045错误解决(重置MySQL密码)

    连接MySQL数据库时难免会遇到1045错误,主要是因为用户输入的用户名或密码错误被拒绝访问,如果不想重装,需要找回密码或者重置密码,这篇文章主要给大家介绍了关于Navicat连接MySQL提示1045错误解决的方法,主要是重置MySQL密码,需要的朋友可以参考下
    2023-04-04
  • 对MySQL慢查询日志进行分析的基本教程

    对MySQL慢查询日志进行分析的基本教程

    这篇文章主要介绍了对MySQL慢查询日志进行分析的基本教程,文中提到的Query-Digest-UI这个基于B/S的图形化查看工具非常好用,需要的朋友可以参考下
    2015-12-12

最新评论