2014-09-01 39 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