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

ลบข้อความเกิน 7 ตัวอักษรท้ายในคอลัมน์ MySQL ด้วย SUBSTR ตำแหน่งลบ

ใช้ SUBSTR() กับตำแหน่งลบ (Negative position) เพื่อดึงเฉพาะ N ตัวอักษรสุดท้ายของสตริง แล้ว UPDATE กลับเข้าไป

ตัวอย่างการสร้างตาราง

mysql> create table DemoTable ( 
    Strength text ); 
Query OK, 0 rows affected (0.51 sec)

เพิ่มข้อความยาว

mysql> insert into DemoTable values('John is a good programmer'); 
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Chris is a good player in cricket'); 
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Bob is good in algorithm'); 
Query OK, 1 row affected (0.42 sec)

แสดงข้อมูลก่อนตัด

mysql> select * from DemoTable;
+-----------------------------------+
| Strength                          |
+-----------------------------------+
| John is a good programmer         |
| Chris is a good player in cricket |
| Bob is good in algorithm          |
+-----------------------------------+
3 rows in set (0.00 sec)

คำสั่ง UPDATE เก็บแค่ 7 ตัวอักษรสุดท้าย

mysql> update DemoTable set Strength = substr(Strength, -7, 7); 
Query OK, 3 rows affected (0.46 sec)
Rows matched: 3  Changed: 3  Warnings: 0

ผลลัพธ์ (7 ตัวอักษรสุดท้าย)

mysql> select * from DemoTable;
+----------+
| Strength |
+----------+
| grammer  |
| cricket  |
| gorithm  |
+----------+
3 rows in set (0.00 sec)

คำอธิบาย: SUBSTR(str, -7, 7) หมายถึง เริ่มจากตำแหน่ง -7 (นับจากท้าย 7 ตัว) ความยาว 7 ตัว = 7 ตัวอักษรสุดท้าย

รูปแบบตำแหน่งลบ:

  • SUBSTR(str, -n) - ดึง n ตัวอักษรสุดท้าย
  • SUBSTR(str, -n, m) - ดึง m ตัวอักษร เริ่มจาก n ตัวจากท้าย

ข้อควรระวัง: คำสั่ง UPDATE นี้เปลี่ยนข้อมูลถาวร ควร BACKUP หรือทดสอบด้วย SELECT ก่อน