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

ตัดทิ้ง 2 ตัวอักษรสุดท้ายของคอลัมน์ใน MySQL ด้วย SUBSTRING และ CHAR_LENGTH


ไวยากรณ์ตัดท้าย 2 ตัวอักษร

ใช้ SUBSTRING() ร่วมกับ CHAR_LENGTH() คำนวณตำแหน่งสิ้นสุด:

SELECT column_name,
       SUBSTRING(column_name, 1, CHAR_LENGTH(column_name) - 2) AS stripped
FROM your_table;

ตัวอย่างการใช้งาน

สร้างตารางและข้อมูล

CREATE TABLE LastTwoCharacters (Words VARCHAR(200));
INSERT INTO LastTwoCharacters VALUES ('Hellooo'), ('Worldsss'), ('Johnson');

ข้อมูลต้นฉบับ

+----------+
| Words    |
+----------+
| Hellooo  |
| Worldsss |
| Johnson  |
+----------+

คำสั่งตัดท้าย 2 ตัวอักษร

SELECT Words,
       SUBSTRING(Words, 1, CHAR_LENGTH(Words) - 2) AS AfterStripLastTwoChar
FROM LastTwoCharacters;

ผลลัพธ์

+----------+-----------------------+
| Words    | AfterStripLastTwoChar |
+----------+-----------------------+
| Hellooo  | Hello                 |
| Worldsss | Worlds                |
| Johnson  | Johns                 |
+----------+-----------------------+

ฟังก์ชันที่ใช้

  • CHAR_LENGTH(str) - ความยาวในหน่วยตัวอักษร (Characters)
  • LENGTH(str) - ความยาวในหน่วยไบต์ (Bytes) - ต่างกันสำหรับ UTF-8
  • SUBSTRING(str, start, length) - ดึงส่วนย่อย เริ่มที่ตำแหน่ง start (1-based)

กรณีข้อมูลสั้นกว่า 2 ตัวอักษร

SELECT SUBSTRING('A', 1, CHAR_LENGTH('A') - 2);  -- ผลลัพธ์: '' (Empty String)
SELECT SUBSTRING('AB', 1, CHAR_LENGTH('AB') - 2); -- ผลลัพธ์: '' (Empty String)

ป้องกันค่า Empty String (คืนค่าเดิมถ้าสั้นเกินไป)

SELECT 
    Words,
    CASE 
        WHEN CHAR_LENGTH(Words) <= 2 THEN Words
        ELSE SUBSTRING(Words, 1, CHAR_LENGTH(Words) - 2)
    END AS safe_stripped
FROM LastTwoCharacters;