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

ทำการค้นหา / แทนที่เฉพาะการเกิดขึ้นครั้งแรกของอักขระในบันทึกตาราง MySQL หรือไม่


คุณสามารถทำสิ่งนี้ได้ด้วยความช่วยเหลือของ CONCAT() พร้อมกับฟังก์ชัน REPLACE() หากต้องการค้นหาการเกิดขึ้นครั้งแรก คุณต้องใช้ฟังก์ชัน INSTR()

ไวยากรณ์มีดังนี้ −

อัปเดต yourTableNameSET UserPost =CONCAT(REPLACE(LEFT(yourColumnName, INSTR(yourColumnName, 'k')), 'k', 'i'), SUBSTRING(yourColumnName, INSTR(yourColumnName, 'k') + 1));

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง UserInformation -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(10), -> UserPost text -> );Query OK, 0 แถวได้รับผลกระทบ (2.05 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน UserInformation (ชื่อผู้ใช้ UserPost) ค่า ('Larry', 'Thks คือแบบสอบถาม MySQL'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน UserInformation (ชื่อผู้ใช้ UserPost) ค่า ( 'Mike','Thks ไม่ใช่โปรแกรม java');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.31 วินาที)mysql> แทรกลงใน UserInformation (ชื่อผู้ใช้ UserPost) ค่า ('Sam','Thks เป็นไวยากรณ์ SQL');แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---------+----------+-------------------------- ---+| รหัสผู้ใช้ | ชื่อผู้ใช้ | UserPost |+----------------------+----------+-------------------------- -+| 1 | แลร์รี่ | Thks เป็นแบบสอบถาม MySQL || 2 | ไมค์ | Thks ไม่ใช่โปรแกรมจาวา || 3 | แซม | Thks เป็นไวยากรณ์ SQL |+-------+----------+----------------------- -----+3 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อค้นหา/แทนที่แต่เฉพาะครั้งแรกที่ค่าปรากฏในเรกคอร์ด ที่นี่การเกิดขึ้นครั้งแรกของ 'k' จะถูกแทนที่ด้วย 'i' -

mysql> อัปเดต UserInformation -> ตั้งค่า UserPost=CONCAT(REPLACE(LEFT(UserPost, INSTR(UserPost, 'k')), 'k', 'i'), -> SUBSTRING(UserPost, INSTR(UserPost, ' k') + 1)); ตกลง ตกลง 3 แถวได้รับผลกระทบ (0.16 วินาที) แถวที่ตรงกัน:3 เปลี่ยน:3 คำเตือน:0

แสดงบันทึกทั้งหมดจากตารางอีกครั้ง แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ที่แสดงการเกิดขึ้นครั้งแรกของ 'k' แทนที่ด้วย 'I' −

<ก่อนหน้า>+---------+----------+-------------------------- ---+| รหัสผู้ใช้ | ชื่อผู้ใช้ | UserPost |+----------------+----------+-------------------------- -+| 1 | แลร์รี่ | นี่คือแบบสอบถาม MySQL || 2 | ไมค์ | นี่ไม่ใช่โปรแกรมจาวา || 3 | แซม | นี่คือไวยากรณ์ SQL |+-------+----------+----------------------- -----+3 แถวในชุด (0.00 วินาที)