首页 > 解决方案 > 如何替换数据库表中的“+”和“-”号

问题描述

标题 价值
VVS1+ 120
VVS1- 230
VS1 870
VS1+ 210
VS1- 560
SI1+ 1240

上表是我的数据

SELECT REPLACE(REPLACE(title ,'-',''),'+','') as Title, SUM(value) as Value FROM 'table_name'

我想删除这些标志,然后添加具有相似标题的值

标签: mysql

解决方案


您的替换逻辑很好,但您还需要按修改后的标题进行聚合:

SELECT REPLACE(REPLACE(title, '-', ''), '+', '') AS title, SUM(value) AS value 
FROM table_name
GROUP BY REPLACE(REPLACE(title, '-', ''), '+', '');

如果您使用的是 MySQL 8+,那么您可以稍微收紧上面的代码:

SELECT REGEXP_REPLACE(title, '[+-]', '') AS title, SUM(value) AS value 
FROM table_name
GROUP BY REGEXP_REPLACE(title, '[+-]', '');

推荐阅读