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

MySQL: เพิ่มเครื่องหมายดอกจัน (*) ตามความยาวสตริงด้วย RPAD

การใช้ RPAD() เพื่อต่อดอกจัน (*) ให้ยาวตามเงื่อนไขความยาวสตริง

ฟังก์ชัน RPAD() ใช้ต่ออักขระที่กำหนดทางขวาของสตริงจนถึงความยาวที่ต้องการ บทความนี้สาธิตการต่อเครื่องหมายดอกจัน (*) โดยกำหนดความยาวเป้าหมายต่างกันไปตามความยาวของชื่อ

สร้างตารางและข้อมูลตัวอย่าง

mysql> create table DemoTable1626 (
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> insert into DemoTable1626 values('Chris');
mysql> insert into DemoTable1626 values('Bob');
mysql> insert into DemoTable1626 values('Robert');

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

+--------+
| Name   |
+--------+
| Chris  |
| Bob    |
| Robert |
+--------+

คำสั่ง SQL: เพิ่ม * ตามเงื่อนไขความยาว

mysql> select rpad(Name, if(length(Name) >= 5, 10, 7), '*') from DemoTable1626;

ผลลัพธ์

+-------------------------------------------+
| rpad(Name,if(length(Name) >= 5,10,7),'*') |
+-------------------------------------------+
| Chris*****                                |
| Bob****                                   |
| Robert****                                |
+-------------------------------------------+

อธิบายตรรกะ

  • length(Name) >= 5 — ตรวจสอบความยาวชื่อ
  • if(..., 10, 7) — ถ้ายาว 5 ตัวขึ้นไป ให้เป้าหมาย 10 ตัวอักษร มิฉะนั้น 7 ตัวอักษร
  • rpad(Name, target_length, '*') — เติม * ทางขวาจนครบความยาวเป้าหมาย

รายละเอียดแต่ละแถว

ชื่อความยาวเป้าหมายจำนวน * ที่เติมผลลัพธ์
Chris5105Chris*****
Bob374Bob****
Robert6104Robert****

หมายเหตุ: หากสตริงต้นฉบับยาวกว่าเป้าหมาย RPAD จะตัดทอน (truncate) ให้เหลือตามเป้าหมาย