2014-01-22 19 views
1

的最後10位數字我用作出新列與其他colulmn

UPDATE user SET phone_last_ten = SUBSTR(phone, -10) 

使

phone_last_ten column

一切都很不錯,但我得到了0零爲phone_last_ten其中phone< 10 chars/digits。任何解決方案?

回答

0

可以使用Right功能

MySQL RIGHT()從字符串的右側提取指定數量的字符。

UPDATE user SET phone_last_ten = RIGHT(phone, 10) 

或者

UPDATE user SET phone_last_ten = RIGHT(CONVERT(Phone, CHAR(50)), 10) 

DEMO

+1

列是int/bigint。我希望它不會有問題? –

+0

@MoodoodAhmad我認爲它會適用於所有,如果不是你可以使用convert..I已經在我的答案更新它。標記有用,如果它幫助你 –

2

使用RIGHT功能,而不是SUBSTR功能

試試這個:

UPDATE autumn4.application_user 
SET phone_last_ten = RIGHT(phone, 10); 

OR

UPDATE autumn4.application_user 
SET phone_last_ten = RIGHT(CAST(phone AS CHAR(20)), 10); 
+0

列是整數/ bigints。我希望它不會有問題? –

+0

@MoodoodAhmad它不會改變。如果您仍然感到困惑,那麼將該列轉換爲varchar。檢查我更新的答案 –