【问题标题】:Mysql SQL triming leading 0 in varchar field without triming last 0 before . (dot)Mysql SQL 修剪 varchar 字段中的前导 0 而不修剪最后一个 0 之前。 (点)
【发布时间】:2012-11-15 15:12:40
【问题描述】:

我想清除 VARCHAR 字段中的“数字”。

Examples:
________________
a. 001    : 1
b. 01     : 1
c. 0      : 0
d. 00.1   : 0.1
e. 0.0    : 0
f. 0.001  : 0.001

我考虑过:

TRIM(LEADING '0' FROM t.field)

但这仅适用于 a 和 b 记录。 其他的会变成 .1 或 .0,...
有关如何处理此问题的任何想法?

编辑: 抱歉,我忘了添加基本信息。 某些记录可能包含其他字符。 即:0.1公里

【问题讨论】:

    标签: mysql trim


    【解决方案1】:

    通过投射来尝试

    SELECT CAST(fieldName AS DECIMAL(10,2))
    FROM tableName
    

    【讨论】:

      【解决方案2】:

      把它们当作数字?

      UPDATE SET yourfield = CAST(yourfield AS signed)
      

      mysql 在进行实际更新时会重新转换为 varchar。

      【讨论】:

      • 嗨。谢谢你的主意。我不能将它们视为数字,因为有些包含其他字符,即 0.1 公里。我想我可以在 CAST 时尝试去除非数字字符。我会尽力。谢谢
      • 抱歉,我忽略了重要信息。我已经编辑了问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      相关资源
      最近更新 更多