Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

มีอะไรที่เหมือนกับ substr_replace ใน MySQL หรือไม่?


สำหรับสิ่งนี้ ให้ใช้ฟังก์ชัน INSERT() จาก MySQL INSERT(str, pos, len, newstr) ส่งคืนสตริง str โดยมีสตริงย่อยเริ่มต้นที่ตำแหน่ง pos และอักขระ len ยาวแทนที่ด้วยสตริง newstr ส่งกลับสตริงเดิมหาก pos ไม่อยู่ภายในความยาวของสตริง

มันจะแทนที่ส่วนที่เหลือของสตริงจากตำแหน่ง pos หาก len ไม่อยู่ภายในความยาวของส่วนที่เหลือของสตริง ส่งกลับค่า NULL ถ้าอาร์กิวเมนต์ใดๆ เป็น NULL

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( รหัสผ่าน varchar(50)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.51 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('76367_____8793443'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า DemoTable ('12345_____9899984322'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรก เป็นค่า DemoTable('99999_____4747747432');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.22 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------------------+| รหัสผ่าน |+----------------------+| 76367_____8793443 || 12345_____9899984322 || 99999_____4747747432 |+----------------------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อใช้ฟังก์ชัน INSERT() สำหรับ substr_replace ใน MySQL -

mysql> เลือกส่วนแทรก (รหัสผ่าน,5,ยาว('PPPPPP'),'PPPPPP') จาก DemoTable

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อน>+--------------------------------------------- +| แทรก(รหัสผ่าน,5,ความยาว('PPPPPP'),'PPPPPP') |+------------------------------------- ---------------+| 7636PPPPPP8793443 || 1234PPPPPP9899984322 || 9999PPPPPP4747747432 |+----------------------------------------------------+ 3 แถวในชุด (0.00 วินาที)