修改MYSQL数据库函数里插入新数据更改插入条件

片段代码如下:

IF substring(tmptext1,z,1)<>CHAR(13) AND POSITION('"' IN substring(tmptext1,z,1))<1 AND POSITION('"' IN substring(tmptext1,j,1))<1
AND POSITION(',' IN substring(tmptext1,z,1))<1 AND POSITION(',' IN substring(tmptext1,j,1))<1
AND POSITION(')' IN substring(tmptext1,z,1))<1 AND POSITION(')' IN substring(tmptext1,j,1))<1 THEN
SET @createsql = CONCAT("INSERT ignore INTO " , targettable , "(firstname,secondname,id)VALUES('",substring(tmptext1,j,1),"','",substring(tmptext1,z,1),"','",tid,"')");
PREPARE stmt from @createsql;
EXECUTE stmt;

现在的是默认插入一行数据,我想修改为firstname,secondname(两个字段集合唯一索引)字段相同的话,id追加到现在的id字段,两个ID之间加个逗号分隔。
图片说明

目前插入结果是这样的三列,可以看得出firstname和secondname字段多个都是重复的,如“动故”,“动神”,“动明”是重复出现,我想要达到的效果是:
图片说明
也就是“动故”出现一次了,不需要再插入一条数据,只需要更改ID字段就可以,ID字段我设置了最长字符限制,也就是插入10次后就插入不进去数据了,插入语句里添加了ignore,插入不进去也不会报错是不是这样,谢谢。

图片说明
字段我已经设置为唯一索引,需要还需要补充什么资料,我再添加,谢谢。

问题解决方法参考内容(有内容我也没看明白,大致就是这个意思)
https://www.cnblogs.com/kzfbk/p/7780950.html

key存在则更新,不存在则插入
insert into .... on duplicate key update
对于需要根据原记录进行操作的.如表中icount字段用于计数,当没有记录时,插入的value为0,当有记录时,value需要更新为value+1,这时replace就不能完成这个功能.使用insert则可以,其基本语法是insert into ... on duplicate key update...,如上述语句为
insert into t_test set ikey=1,value='a',value2=1 on duplicate key update value2=value2+1;

你字符串不是直接相加,而是加上逗号,但是思路和这个一样

https://www.jb51.net/article/28885.htm

SET @createsql = CONCAT("INSERT ignore INTO " , targettable , "(firstname,secondname,id)VALUES('",substring(tmptext1,j,1),"','",substring(tmptext1,z,1),"','",tid,"')");

改成:

SET @createsql = CONCAT("INSERT INTO " , targettable , "(firstname,secondname,id)VALUES('",substring(tmptext1,j,1),"','",substring(tmptext1,z,1),"','",tid,"') ON DUPLICATE KEY UPDATE id=concat(id,"','",tid) ");