MySQL全局进行模糊查询操作

通过关键词去匹配数据表中的一个或者多个字段,以此获得想要的列表结果。

目前有如下数据表:

 

在搜索框中输入查询内容后,比如输入‘n’, 希望可以同时匹配到user_name、email和user_info字段,通过以下方式即可实现:

SELECT 
	a.id as 序号, 
	a.user_name as 人员姓名, 
	a.`password` as 密码, 
	a.email as 邮箱, 
	a.user_info as 人员信息, 
	a.create_time as 创建时间
FROM sys_user as a WHERE CONCAT(a.user_name, a.email, a.user_info) LIKE CONCAT('%', 'n', '%');

查询结果:

 

如果查询字段中可能存在空值,可以使用IFNULL进行处理。
 

### 解决 IntelliJ IDEA 中数据库模糊查询结果乱码的问题 在使用 IntelliJ IDEA 进行数据库操作时,如果遇到模糊查询返回的结果出现乱码的情况,通常是因为字符集设置不一致或者未正确配置编码方式所致。以下是可能导致该问题的原因及其解决方案: #### 1. 数据库连接 URL 编码设置 确保数据库连接字符串中指定了正确的字符集参数。例如,在 MySQL 的 JDBC 连接 URL 中应加入 `useUnicode=true` 和 `characterEncoding=utf8` 参数[^2]。 ```properties jdbc:mysql://localhost:3306/database_name?useUnicode=true&characterEncoding=utf8 ``` 此配置可防止因默认字符集不同而导致的乱码现象。 #### 2. 数据库表和字段的字符集定义 检查数据库中的表和字段是否已设置为 UTF-8 字符集。可以通过以下 SQL 查询确认当前表的字符集: ```sql SHOW CREATE TABLE table_name; ``` 如果发现字符集不是 UTF-8,则可通过以下语句将其更改为 UTF-8: ```sql ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; ``` 这一步对于确保存储的数据不会因为字符集差异而损坏至关重要[^5]。 #### 3. JVM 启动参数调整 有时 IDE 或应用程序本身的 JVM 设置可能会影响字符编码行为。可以在启动 IntelliJ IDEA 时添加 `-Dfile.encoding=UTF-8` 参数以强制指定全局编码为 UTF-8[^1]。 具体做法如下: - 打开 IntelliJ IDEA 的配置文件(通常是 `idea.vmoptions`),位于安装目录下的 bin 文件夹中。 - 添加以下内容到文件末尾: ```plaintext -Dfile.encoding=UTF-8 ``` 保存后重启 IDE 即可生效。 #### 4. JSP 页面编码声明 如果是基于 Web 应用场景下发生的乱码问题,还需注意前端页面的编码声明是否统一。例如 `.jsp` 文件头部需明确指出使用的字符集为 UTF-8[^4]: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> ``` 这样能够保证浏览器端接收数据时采用相同的编码标准。 #### 5. 模糊查询 SQL 语句本身 当执行 LIKE 子句进行匹配时,建议显式转换目标列值为目标编码形式再做比较运算。比如下面的例子展示了如何利用 MySQL 函数 CAST 将待查字段转成二进制串后再参与条件判断[^3]: ```sql SELECT * FROM users WHERE CAST(name AS BINARY) LIKE '%张三%'; ``` 以上措施综合应用下来基本能彻底根除由编码冲突引发的各种异常状况。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值