从由字符和具有相同字符的整数组成的字符串中添加整数

时间:2018-08-09 20:24:20

标签: php mysql

我有这个mysql表。

name   |  column
bob11  |  value
bob22  |  value
red12  |  value
bam22  |  value

我想做的是添加数字11和22,因为鲍勃的名字是一样的。我想以此方式将其与其他名称一起输出。

name   |  column
bob33  |  value
red12  |  value
bam22  |  value

我已经知道如何通过此代码获取具有相同值的列。

"SELECT name, COUNT(*) as count FROM table GROUP BY name HAVING COUNT(*) > 1"

但是我不知道该怎么做。任何想法将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

如果数字前的部分始终为3个字符长,则可以使用LEFT()SUBSTR()提取前缀和数字,然后使用CONCAT()SUM()结合起来。

SELECT CONCAT(LEFT(name, 3), SUM(SUBSTR(name, 4))) AS name, `column`
FROM yourTable
GROUP BY LEFT(name, 3);

DEMO

如果没有,则需要编写一个返回数字后缀位置的函数,并使用该函数代替对3的硬编码。

SELECT CONCAT(LEFT(name, number_pos(name)-1), SUM(SUBSTR(name, number_pos(name)))) AS name, `column`
FROM yourTable
GROUP BY LEFT(name, number_pos(name)-1)

有关查找数字位置的方法,请参见Finding number position in string