Mysql 如何从db表列中删除.0?

Mysql 如何从db表列中删除.0?,mysql,sql,Mysql,Sql,我将Excel文件转换为SQL文件。但是,当我把它导入数据库时。它在某些值的末尾添加了.0。列类型为varchar。如何更新列值以从所有字符串值中删除.0 例如: 导入值 12345.0 A119B 65489.0 BD585 123.0 124.0 12.0 期望结果 12345 A119B 65489 BD585 123 124 12 如果十进制值不确定,则应考虑使用;在中选择或更新。现在,您只是展示了.0的示例,但如果它的变化比.0更大呢?我至少假设不需要的值总是在之后,因此: SEL

我将Excel文件转换为SQL文件。但是,当我把它导入数据库时。它在某些值的末尾添加了.0。列类型为varchar。如何更新列值以从所有字符串值中删除.0

例如:

导入值

12345.0
A119B
65489.0
BD585
123.0
124.0
12.0
期望结果

12345
A119B
65489
BD585
123
124
12

如果十进制值不确定,则应考虑使用;在

中选择
更新
。现在,您只是展示了
.0
的示例,但如果它的变化比
.0
更大呢?我至少假设不需要的值总是在
之后,因此:

SELECT SUBSTRING_INDEX(val,'.',1) FROM mytable;

result:
+----------------------------+
| SUBSTRING_INDEX(val,'.',1) |
+----------------------------+
| 12345                      |
| A119B                      |
| 65489                      |
| BD585                      |
| 123                        |
| 124                        |
| 12                         |
+----------------------------+
对更新使用相同的功能:

UPDATE mytable 
  SET val=SUBSTRING_INDEX(val,'.',1) 
WHERE val LIKE '%.%';

荣誉归于:@WOUNDEDStevenJones


注意:使用表格名更改表格,使用列名更改colName。

如果它始终正好是5,则可以使用
子字符串
从Excel导出之前,您需要确保列为“文本”格式。。任何其他格式(货币、数字等)都可能出现意外问题。。即使单元格中有数字,MS Excel-->文本格式单元格中的逐字记录也会被视为文本。单元格的显示方式与输入的完全相同<代码>更新表集值=替换(值,.0,“”)我想知道,它是否总是
.0
?如果有时它变成
.1
.01
等怎么办。?
UPDATE table SET colName = REPLACE(colName, ".0", "")