2014-09-01 47 views
0

我有一个奇怪的SQL问题,我从来没有遇到,并没有在谷歌ing运气。 在我的网站上。而订购产品,用户需要填写一个字段与他们的私人ID,它被保存在数据库中更新信息时,Mysql 0会被删除吗?

UPDATE bs_users SET passport_id = 01010101011 WHERE id=177 

但问题是,在MySQL中0得到某种原因除去,这是结果我得到在数据库

http://imgur.com/h8v46Jd

字段的类型是VARCHAR,具有50个字符

限制

回答

4

尝试在引号包围值

UPDATE bs_users SET passport_id = '01010101011' WHERE id = '177' 

原因是01010101011是一个整数,它被解析为1010101011。然后它被转换为一个字符串,但是前导0已经丢失。如果要保留前导0,则将其作为字符串传递,而不是整数。并感谢@Joachim Isaksson的解释

+4

作为解释,“01010101011”是一个整数,它被解析为“1010101011” 。然后它被转换为一个字符串,但是前导0已经丢失。如果您想保留前导0,请将其作为字符串传入,而不是整数。 – 2014-09-01 08:24:43

+0

我值得失去这个愚蠢的一个错误的几点,非常感谢您先生 – Guram 2014-09-01 08:24:43

+0

这是完全正确的@JoachimIsaksson,我已经更新与您的评论的答案。:-) – 2014-09-01 08:27:26

相关问题