gpt4 book ai didi

mysql - sql从字段中删除点和逗号

转载 作者:行者123 更新时间:2023-11-29 04:38:47 24 4
gpt4 key购买 nike

在 mysql 中,我可以列出我的 meta_key _simple_fields_fieldGroupID_6_fieldID_10_numInSet_0 的所有元值

 select * from pm_postmeta where meta_key LIKE '%_simple_fields_fieldGroupID_6_fieldID_10_numInSet_0%'

它是用户高度的列表,例如 1.67 、 168 等

我想删除数字上的点...有时我有 1.79 而我想要 179...我该怎么做?

我试过了

UPDATE pm_postmeta
SET meta_value = REPLACE(REPLACE(meta_value,',00',''),'.','')
WHERE meta_key='_simple_fields_fieldGroupID_6_fieldID_10_numInSet_0';

但它删除了表格行,我需要再次导入...

最佳答案

实际上每个都取决于您用来存储人物高度的数据类型。

你说“它们是数字”,我假设它们存储在 NUMERIC 列中(你不能将 1.78 存储到 INTEGER 数据类型中)。

因此,假设您的原始表格包含如下内容:

SQL> select * from people ;
id| height
----------+--------
1| 180.00
2| 1.78
3| 165.00
4| 2.01

您基本上想更新此表,将所有高度乘以 100 并带小数部分:

SQL> update people set height = height * 100 where mod(height, 1) > 0 ;
SQL> select * from people ;
id| height
----------+--------
1| 180.00
2| 178.00
3| 165.00
4| 201.00

编辑

好的,您现在说要更改的值包含或者 逗号或点,所以...列是 CHAR/VARCHAR。像这样:

SQL> select * from people2;
id|height
----------+----------
1|180
2|1.78
3|165
4|2,01

在这种情况下,我会使用:

SQL> update people2 set height = replace(replace(height,'.',''),',','') where height regexp '.*[,.].*';
SQL> select * from people2;
id|height
----------+----------
1|180
2|178
3|165
4|201

关于mysql - sql从字段中删除点和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34542712/

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