“结果集为空”是一个很常见的问题,但原因很多,需要结合使用场景来看。下面按最常见场景给你系统地总结一下原因和排查思路。
SELECT * FROM user WHERE id = 100;
id = 100 的数据✅ 排查:
SELECT COUNT(*) FROM user;
SELECT * FROM user WHERE id = 100;
WHERE varchar_column = 123
✅ 建议:
WHERE varchar_column = '123'
WHERE column = NULL ❌
✅ 正确写法:
WHERE column IS NULL
WHERE status = 1 AND status = 2
或
WHERE delete_flag = 0 AND delete_flag IS NULL
✅ 检查 AND / OR 逻辑
✅ 检查:
DESC table_name;
A INNER JOIN B ON A.id = B.a_id
✅ 改用:
LEFT JOIN
int,一个 varchar✅ 排查:
SELECT DISTINCT LENGTH(col) FROM table;
map.put("status", null);
或
id = 0; // 实际不存在
<if test="name != null and name != ''">
✅ 打开 SQL 日志:
logging.level.com.xxx.mapper=DEBUG
resultMap 但映射错误✅ 排查:
size()✅ 排查:
| 场景 | 原因 |
|---|---|
| 时间条件 | 日期格式 / 时区问题 |
| 模糊查询 | LIKE '%xxx%' 写错 |
| 编码问题 | 中文查询未转码 |
| 权限问题 | 看不到某些数据 |
如果你愿意,可以把:
发出来,我可以直接帮你定位原因。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。