SQL查询匹配条件却返回0行而非预期结果问题求助
为什么我的SQL查询返回0行而不是预期的1行?
先还原你的场景:
你的Secretaries表数据应该是这样的(看起来是输入时格式没对齐):
SecretaryID username password 1 marpap marpap 2 eleko eleko
你执行的查询语句是:
select username, password from Secretaries where username='marpap' and Password='marpap'
但结果返回0行,大概率是这几个常见原因:
字段名大小写不匹配:注意你的查询里写的是
Password(首字母大写),但表结构里的字段是password(全小写)。如果你的数据库是区分大小写的(比如Linux环境下的MySQL,默认对表名和字段名区分大小写),数据库会把Password当成一个不存在的字段,自然查不到数据。把查询里的Password改成小写的password试试。数据存在隐形空格:如果
username或password字段里的实际值带有前后空格(比如存储的是'marpap '而不是'marpap'),那么精确匹配'marpap'就会失败。你可以先执行select username, password, length(username), length(password) from Secretaries看看字段长度是否符合预期,或者用模糊查询排查:select username, password from Secretaries where username like '%marpap%' and password like '%marpap%'。表名拼写错误:确认你的表名确实是
Secretaries而不是Secretary(你的数据开头写的是SecretaryID,有可能表名是单数形式),如果表名写错了,也会返回0行。
内容的提问来源于stack exchange,提问作者the essential
相关产品推荐
相关产品推荐

