Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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
Php 从由字符和具有相同字符的整数组成的字符串中添加整数_Php_Mysql - Fatal编程技术网

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

Php 从由字符和具有相同字符的整数组成的字符串中添加整数,php,mysql,Php,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

我有这张桌子

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"

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

如果数字前的部分总是3个字符长,您可以使用
LEFT()
SUBSTR()
提取前缀和数字,然后使用
CONCAT()
SUM()
组合它们

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

如果没有,则需要编写一个返回数字后缀位置的函数,并使用该函数代替硬编码
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)

有关查找数字位置的方法,请参阅。

我认为单用SQL无法做到这一点。您可以在PHP中去掉整数和名称,添加整数,然后追加回名称。学习
substr
命令。抱歉,您的查询有点笼统,这是我能给您的最好答案,这就是为什么我们应该使用1NF()不,不是,只是使用上面的名称作为例子。我已经更新了答案,告诉您如何使用可变长度前缀。