我有一个MYSQL语句的问题,我只想检查一个表中的两个字段是否匹配以下查询工作正常但我只是想知道这些字段中的一个是否未能匹配。我是否知道哪个领域不匹配? 这是我的疑问:
SELECT *
FROM `all_users`
WHERE `UserName`= 'Johne' AND
`UserPassword` = '40bd001563085fc35165329ea1ff5c5ecbdbbeef'
答案 0 :(得分:1)
OR
子句中需要AND
而不是WHERE
才能包含只匹配其中一列的行。
SELECT *, (`UserName`= 'Johne') AS UsernameMatch,
(`UserPassword` = '40bd001563085fc35165329ea1ff5c5ecbdbbeef') AS UserPasswordMatch
FROM `all_users`
WHERE `UserName`= 'Johne' OR `UserPassword` = '40bd001563085fc35165329ea1ff5c5ecbdbbeef';
请注意您使用结果的方式,因为您不希望人们猜测其他用户具有给定的密码。
相反,您可以使用:
SELECT *, (`UserPassword` = '40bd001563085fc35165329ea1ff5c5ecbdbbeef') AS UserPasswordMatch
FROM `all_users`
WHERE `UserName`= 'Johne';
检查实际用户名的密码是否正确。