【问题标题】:making a new column with last 10 digits of an other colulmn用另一列的最后 10 位创建一个新列
【发布时间】:2014-02-12 10:12:41
【问题描述】:

我用过

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

制作

phone_last_ten column

一切正常,但我得到了 0phone_last_ten 其中 phone< 10 chars/digits 。有什么解决办法吗?

【问题讨论】:

    标签: mysql sql sql-update substring


    【解决方案1】:

    使用RIGHT 函数代替SUBSTR 函数

    试试这个:

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

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

    【讨论】:

    • 列是整数/大整数。我希望没关系?
    • @MasoodAhmad 它不会发生。如果您仍然感到困惑,那么将该列转换为 varchar。检查我的更新答案
    【解决方案2】:

    你可以使用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

    【讨论】:

    • 列是整数/大整数。我希望没关系?
    • @MasoodAhmad 我认为它适用于所有人,如果不是,您可以使用 convert..我已经在我的回答中更新了它。如果对您有帮助,请标记有用
    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    相关资源
    最近更新 更多