select IFNULL(CONCAT('CS',case when (select max(CONVERT(replace(id,'CS',''), SIGNED INTEGER))+1 from tablename) < 10 then CONCAT('00',(select max(CONVERT(replace(id,'CS',''), SIGNED INTEGER))+1 from tablename)) when (select max(CONVERT(replace(id,'CS',''), SIGNED INTEGER))+1 from tablename) < 100 then CONCAT('0',(select max(CONVERT(replace(id,'CS',''), SIGNED INTEGER))+1 from tablename)) else (select max(CONVERT(replace(id,'CS',''), SIGNED INTEGER))+1 from tablename) end),CONCAT('CS','001') )
ควรจะมีฟิลด์ที่เป็น Auto Id อีกฟิลด์ครับ
จากนั้นทุกครั้งที่ INSERT ก็ใช้ mysql_insert_id(); รับค่าที่เพิ่งบันทึกไป
แล้วก็ไปหาค่า MAX ของรหัสลูกค้าที่ตัดตัวอักษรออกไปแล้ว (ถ้ามีตัวอักษรค่าอาจเพี้ยน)
เมื่อได้ค่า MAX ก็เอามา +1
จากนั้นก็นำค่าใหม่ไปอัพเดตให้ mysql_insert_id(); ที่ได้มานั่นเอง