删除前导零并将值插入新列

时间:2017-08-22 07:25:15

标签: mysql sql

我正在尝试将列的所有值移动到新列。但是在将其插入新列之前,我需要删除所有前导零。例如,我的原始列上有'000123'。我需要将我的新列更新为123.我需要将此列更改为100,000行。有没有办法在SQL查询中执行此操作?

select substring(ColumnName, patindex('%[^0]%',ColumnName), 10)

我找到了关于如何删除前导零的代码。但是如何将其插入新列?

4 个答案:

答案 0 :(得分:3)

这里有几个选项。您可以在更新期间将文本列转换为数字:

UPDATE yourTable
SET new_col = CAST(ColumnName AS UNSIGNED)

但您也可以从列中的文本编号中明确删除前导零:

UPDATE yourTable
SET new_col = TRIM(LEADING '0' FROM ColumnName)

由于看起来您希望新数据表现为数字,其中前导零是人为的,您可能希望将new_col列设置为某种数字类型。

答案 1 :(得分:2)

这应该做:

UPDATE tablename SET newColumn = currentColumn*1

只需将newColumn设置为整数,并且不要将其设置为零填充(默认情况下,它已经不是)。

答案 2 :(得分:2)

将值转换为unsigned:

update <table> set new_column = CAST(ColumnName AS UNSIGNED);

答案 3 :(得分:1)

如果您需要移动列(添加新列),请执行

<label for="file_upload" class="custom-file_upload z-depth-1">
  <i class="material-icons">&#xE147;</i>
  <p class="button-text"> Upload Here</p>
</label>
  <input class="file_upload" type="file" accept="image/*" name="user_id" />

如果要使用新值更新现有列,则

INSERT INTO table2
SELECT TRIM(LEADING '0' FROM ColumnName)
FROM table1
WHERE condition;