ลองปรับใช้คำสั่งแบบนี้ครับ(ควรทดสอบก่อนทำจริงๆนะครับ เอามาให้ดูเป็นแนวทางเฉยๆ หากเห็นว่าสามารถช่วยท่านได้ก็ค่อยลองกับฐานจริง )
-----ptcardno hos.patient to hos.ptcardno
INSERT ignore INTO hos.ptcardno( hn,cardno)
select hn,concat(mid(cid, 1, 1),'-',mid(cid, 2, 4),'-',mid(cid, 6, 5),'-',mid(cid, 11, 2),'-',mid(cid, 13, 1)) as aa from hos.patient where cid is not null or cid <> ""