---
title: LIKE 精准匹配模式下特殊字符匹配不正确-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于LIKE 精准匹配模式下特殊字符匹配不正确相关的常见问题和使用技巧，帮助您快速解决LIKE 精准匹配模式下特殊字符匹配不正确的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# LIKE 精准匹配模式下特殊字符匹配不正确

更新时间：2026-07-31 09:11

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 问题现象

`char` 或 `nchar` 类型的列在加索引后，使用 `like 'x'` 谓词过滤后查询结果和 Oracle 不一致。

## 关键诊断信息

### 触发条件

`char` 或 `nchar` 类型的列在加索引后，使用 `like 'x'` 谓词过滤。

## 问题原因

`nchar` 和 `char` 类型是固定长度的，字符串不足的长度补空至固定长度，因此对于 `c1 = 'x'`，其实际值为 `c1 = 'x '` 对于 `c1 = 'x'`，等值查询时忽略空格； 对于 `c1 like 'x'`，要求 `pattern` 精确匹配，不忽略空格，预期查不出数据。但是目前我们会抽出 [x;x] 的 range，并认为是精确抽取的，导致 `'x '` 未被过滤掉，最终查询出了数据，不符合预期。

## 问题的风险及影响

查询结果和 Oracle 不一致。

## 影响租户

影响 OceanBase 数据库中的 Oracle 租户，对于 SYS 租户和 MySQL 租户无影响。

## 影响的版本

OceanBase 数据库企业版 V2.2.77 GA（oceanbase-2.2.77-20210508211731）及之后版本、V3.1.2 GA（oceanbase-3.1.2-20210618150922）及之后版本、V3.2.3 GA（oceanbase-3.2.3.0-20220418212020）及之后版本。

## 解决方法

- 升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP14（oceanbase-2.2.77-114000072022120410）及之后版本、V3.1.2 BP11（oceanbase-3.1.2-111000052023010412）及之后版本、V3.2.3 BP6（oceanbase-3.2.3.3-106000102022111521）及之后的版本。
 - 将 `like 'x'` 条件改为等值条件 `= 'x'`。

## 规避方式

将 `like 'x'` 条件改为等值条件 `= 'x'`。

上一篇

[子查询含聚合函数 win magic 改写的 SQL 正确性问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000008214)

下一篇

[查询列包含 LOB 类型字段，USE_CONCAT 失效](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209973) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
