gpt4 book ai didi

mysql:将表的所有列从varchar更改为decimal

转载 作者:行者123 更新时间:2023-11-29 05:36:29 28 4
gpt4 key购买 nike

我有一个包含所有类型为 varchar 的列的表,但数据实际上是数字,即 decimal(6,2) 会更合适。如果有很多列,如何将所有列从 varchar 更改为 decimal。非常感谢您的帮助。

最佳答案

您可以使用 ALTER TABLE tablename MODIFY COLUMN columnname DECIMAL(6,2); 将单个列更改为十进制。任何可以转换为数字的字符串都将被转换,其他的将被更改为零。

如果您想确保以非破坏性方式执行此操作,您可以改为执行 ALTER TABLE ADD COLUMN 来添加一个十进制列,然后 UPDATE tablename SET decimalcolumn = textcolumn ,然后使用 SELECT 检查 textcolumndecimalcolumn 不相等的任何行(它将类型转换作为比较的一部分,因此 "5"5.00 是相等的,如您所愿)。

我不知道有什么方法可以同时自动将相同的转换应用到多个列,尽管您可以用 PHP 或其他编程语言通过从表中选择一行,遍历返回的列来实现,并为每一个运行 MODIFY。如果只有几列,手工操作可能更容易。

关于mysql:将表的所有列从varchar更改为decimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115258/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com