执行MySQL用户密码更新语句时触发#1054未知列错误
解决MySQL更新MD5加密密码时的1054错误
错误原因
你触发的#1054 - Unknown column 'myword' in 'field list'错误,是因为MySQL会把未加引号的myword和x@mail.com解析为列名,而非你要设置的字符串值。
正确的更新语句
由于password字段是MD5加密存储的,需要用MD5()函数对明文密码加密,同时必须用单引号包裹字符串值(MySQL标准字符串分隔符):
UPDATE users SET password = MD5('myword') WHERE email = 'x@mail.com';
关键说明
- 单引号包裹字符串:确保MySQL将
'myword'和'x@mail.com'识别为字符串值,而非列标识符;若使用双引号出错,大概率是你的MySQL开启了ANSI_QUOTES模式,此时双引号会被当作列名解析,因此优先用单引号。 - MD5加密适配:从你的数据表结构可知,
password字段是varchar(32),正好匹配MD5加密后32位字符串的长度,用MD5()函数加密后存入能保持字段格式一致。
内容的提问来源于stack exchange,提问作者Bigg Danta
相关产品推荐
相关产品推荐

