# sqlalchemy.orm.exc.MultipleResultsFound：one() 找到了多行

- **ID:** `python/sqlalchemy-orm-query-multiple-results`
- **领域:** python
- **类别:** runtime_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

当查询返回多行时使用 .one()。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.x | active | — | — |

## 解决方案

1. **Use .one_or_none() if row may not exist.** (95% 成功率)
   ```
   user = session.query(User).filter_by(email='test@test.com').one_or_none()
   ```
2. **Add additional filter to ensure uniqueness.** (90% 成功率)
   ```
   user = session.query(User).filter(User.id == 1).one()
   ```

## 无效尝试

- **Using .first() without checking for uniqueness.** — Returns first row but may miss intended unique row. (70% 失败率)
- **Catching exception and returning None.** — Hides potential data integrity issues. (60% 失败率)
