Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-从INT-type列中删除文本_Mysql_Double_Varchar - Fatal编程技术网

Mysql-从INT-type列中删除文本

Mysql-从INT-type列中删除文本,mysql,double,varchar,Mysql,Double,Varchar,我正在迁移 我有一个列名称amount,单位为rmb VARCHAR。但我想把它改成10,2倍 问题是,某些行的金额包含1525元人民币、23523元人民币等数据 我只想要1525,但不想要人民币,因为我正在将列类型更改为double 我的问题是,如何使用mysql查询或任何方法从行中删除RMB或RM?数值非常重要,不能删除。如果这些是唯一可能的前缀,您可以执行以下操作: UPDATE YourTable SET amount_in_rmb = CASE WHEN amount_in_rmb L

我正在迁移

我有一个列名称amount,单位为rmb VARCHAR。但我想把它改成10,2倍

问题是,某些行的金额包含1525元人民币、23523元人民币等数据

我只想要1525,但不想要人民币,因为我正在将列类型更改为double


我的问题是,如何使用mysql查询或任何方法从行中删除RMB或RM?数值非常重要,不能删除。

如果这些是唯一可能的前缀,您可以执行以下操作:

UPDATE YourTable
SET amount_in_rmb = CASE WHEN amount_in_rmb LIKE 'RMB%' THEN SUBSTR(amount_in_rmb, 4)
                         WHEN amount_in_rmb LIKE 'RM%' THEN SUBSTR(amount_in_rmb, 3)
                         ELSE amount_in_rmb
                    END

如果有其他前缀,请添加更多WHEN子句。我不认为有一种简单的方法可以跳过SQL开头的所有字母。

如果只是RMB而不是数字信息,请以这种方式使用替换函数:REPLACEfield,“RMB”,谢谢barmar。实际上,几乎没有更多可能的前缀。我所做的就是在我喜欢的时候再挤出一些来完成它。顺便说一句,如果您有更好的解决方案,可以使用更多可能的前缀,我相信这将有助于其他人寻找此类解决方案: