You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL以SHA加密密码为查询条件时返回空集问题求助

MySQL插入后查询无结果排查方案
  • 密码字段长度不足
    SHA() 函数生成的是40位长度的十六进制哈希值,如果你表中 password 字段设置的长度小于40(例如定义为 VARCHAR(30)),插入时哈希值会被自动截断,存储的内容不完整,查询时比对完整哈希自然无法匹配。可以执行 DESC customer; 查看password字段的具体定义确认。
  • 插入后未提交事务
    如果你的MySQL客户端开启了手动事务提交模式,插入操作执行后没有执行 COMMIT; 命令,数据只会保存在当前会话的临时事务中,其他会话查询时看不到这条数据,就会返回空集。
  • 哈希参数存在隐形差异
    检查插入和查询时SHA函数的入参是否完全一致,是否存在多余的空格、换行、特殊不可见字符,或者两次输入的字符大小写、编码不同,都会导致生成的哈希值不一致,无法匹配。
  • 插入操作实际执行失败
    检查插入语句执行时是否抛出了错误,例如存在唯一键冲突、非空字段未赋值等情况,导致数据实际没有插入成功,查询自然返回空。
  • 操作的库/表不匹配
    确认插入和查询操作都是在同一个数据库的同一张 customer 表执行,避免误操作到其他测试库、备份表导致数据不一致。
  • 字段排序规则/字符集问题
    如果 password 字段使用了大小写敏感的排序规则,或者插入、查询时的连接字符集不一致,也可能导致字符串比对失败。

内容的提问来源于stack exchange,提问作者Mursyid Nasir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:24:03