Pgsql not like用法
时间: 2025-04-04 13:13:47 浏览: 35
在 PostgreSQL 中,`NOT LIKE` 运算符用于检查某个字符串是否**不符合**指定的模式匹配规则。它是 `LIKE` 的对立运算符。
### 使用语法
```sql
column_name NOT LIKE pattern [ESCAPE escape_character]
```
#### 参数说明:
1. **column_name**: 要进行比较的列名。
2. **pattern**: 匹配的模板或模式,可以包含通配符 `_` 和 `%`。
- `_`: 表示任意单个字符。
- `%`: 表示零个或多个字符。
3. **[ESCAPE escape_character]** (可选): 如果需要对特殊字符(如 `_` 或 `%`)进行转义处理,则通过此参数指定一个转义字符。
---
### 示例
假设有一个名为 `users` 的表,并且其中有一列叫做 `name`:
| id | name |
|----|------------|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
| 4 | Davidsson |
#### 查询所有名字不是以 "A" 开头的人:
```sql
SELECT * FROM users WHERE name NOT LIKE 'A%';
```
结果将返回:
| id | name |
|----|----------|
| 2 | Bob |
| 3 | Charlie |
| 4 | Davidsson|
#### 查找名字中不含字母“o”的记录:
```sql
SELECT * FROM users WHERE name NOT LIKE '%o%';
```
这会排除掉像 “Bob”、“Charlie” 等含有 ‘o’ 字母的名字。
#### 带有 ESCAPE 关键字的情况(如果 % 需要作为普通字符)
如果你想查找包含实际百分比符号 (%) 的内容,可以用下面的方式:
```sql
SELECT * FROM users WHERE name NOT LIKE '%\%%' ESCAPE '\';
```
以上查询表示筛选出那些字段值里面并没有直接包括 '%' 符号的所有行数据.
---
### 总结
- `NOT LIKE` 主要是用来做反向过滤操作,即选出不满足特定文本模式的数据项;
- 它支持简单的通配功能以便更灵活地构建搜索条件;
阅读全文
相关推荐

















