Mysql 如何从db表列中删除.0?
我将Excel文件转换为SQL文件。但是,当我把它导入数据库时。它在某些值的末尾添加了.0。列类型为varchar。如何更新列值以从所有字符串值中删除.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
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", "")