mysql - 如何替换数据库表中的“+”和“-”号
问题描述
标题 | 价值 |
---|---|
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'
我想删除这些标志,然后添加具有相似标题的值
解决方案
您的替换逻辑很好,但您还需要按修改后的标题进行聚合:
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, '[+-]', '');
推荐阅读
- php - 通过 jQuery ajax PHP 和数据库获取数据
- spring-data-elasticsearch - 如何验证由 spring-data-elasticsearch 生成的文档 ID
- firebase - 如何使用颤振编辑firebase现有文档
- symfony - Symfony 从自定义 DBAL 类型获取当前实体
- php - 如何在 BuddyBoss 的信使页面添加自定义按钮?
- python - 通过 if 计数
- flutter - 在 Flutter 云 Firestore 中同时使用 StreamBuilder 从集合和子集合中检索数据
- image-processing - 在 Ubuntu 18.04 与任何其他操作系统中通过 PIL 保存和重新加载图像后获取不同的 RGB 值
- fortran - 在字符串匹配后从下一行将值读入 Fortran 数组
- python - Django App 之外的 Python 脚本和类