sql的like模糊匹配中下划线怎么转移
时间: 2025-03-27 10:54:54 浏览: 67
### 如何在 SQL LIKE 模糊匹配中转义下划线字符
当在 SQL 的 `LIKE` 子句中使用下划线 `_` 或百分号 `%` 作为普通字符进行查询时,这些字符会被解释为通配符。为了防止这种默认行为并使这些字符按字面意义被识别,SQL 提供了 `ESCAPE` 关键词来定义一个转义字符。
对于想要查找包含实际下划线的字符串情况,在构建查询条件时可以在待查模式串前加上选定的转义符号,并通过 `ESCAPE` 后跟该符号告知数据库引擎哪些后续字符应视为文字而非通配符[^1]。
例如,要找出所有以 `'YW_'` 开头的表名(这里的第一个下划线意指具体的下划线字符),可以这样编写查询:
```sql
SELECT *
FROM user_all_tables
WHERE table_name LIKE 'YW/_%' ESCAPE '/';
```
在这个例子中选择了斜杠 `/` 来充当转义字符;因此紧接在其后的下划线就被当作普通的字符处理而不是通配符。
另外一种常见的做法是指定反斜杠 `\` 作为转义字符,这与许多编程语言的习惯相一致:
```sql
SELECT *
FROM user_all_tables
WHERE table_name LIKE 'YW\_%' ESCAPE '\';
```
这里同样实现了相同的效果——即让紧跟其后的下划线不作为通配符参与比较逻辑。
值得注意的是,虽然上述方法适用于大多数关系型数据库管理系统(RDBMS),但在某些特定环境下可能有所差异。比如 MySQL 数据库允许直接设置会话级别的变量 `sql_mode=NO_BACKSLASH_ESCAPES` 改变这一机制的行为方式[^3]。
阅读全文
相关推荐


















