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

แปลงข้อความเป็นตัวพิมพ์เล็กทั้งหมด แต่ตัวแรกเป็นพิมพ์ใหญ่ใน MySQL

บทนำ

การจัดรูปแบบชื่อให้เป็นรูปแบบมาตรฐาน (Title Case) โดยให้ตัวอักษรแรกเป็นพิมพ์ใหญ่ และที่เหลือเป็นพิมพ์เล็ก สามารถทำได้ด้วยการรวมฟังก์ชัน UCASE(), LCASE(), LEFT(), SUBSTRING() และ CONCAT()

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

mysql> CREATE TABLE DemoTable (
    -> Name VARCHAR(100)
    -> );
Query OK, 0 rows affected (1.32 sec)
mysql> INSERT INTO DemoTable VALUES('JOhn');
mysql> INSERT INTO DemoTable VALUES('CHRIS');
mysql> INSERT INTO DemoTable VALUES('DAVID');
mysql> INSERT INTO DemoTable VALUES('RObert');

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

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+--------+
| Name   |
+--------+
| JOhn   |
| CHRIS  |
| DAVID  |
| RObert |
+--------+
4 rows in set (0.00 sec)

คำสั่งอัปเดตให้เป็นรูปแบบ Title Case

mysql> UPDATE DemoTable
    -> SET Name = CONCAT(UCASE(LEFT(Name, 1)), LCASE(SUBSTRING(Name, 2)));

ผลลัพธ์หลังอัปเดต

mysql> SELECT * FROM DemoTable;
+--------+
| Name   |
+--------+
| John   |
| Chris  |
| David  |
| Robert |
+--------+
4 rows in set (0.00 sec)

การทำงานของคำสั่ง

  1. LEFT(Name, 1) - ดึงตัวอักษรตัวแรก
  2. UCASE(...) - แปลงเป็นพิมพ์ใหญ่
  3. SUBSTRING(Name, 2) - ดึงตัวอักษรตั้งแต่ตัวที่ 2 ถึงสุด
  4. LCASE(...) - แปลงเป็นพิมพ์เล็ก
  5. CONCAT(...) - รวมสองส่วนเข้าด้วยกัน

หมายเหตุ

ใน MySQL 8.0+ สามารถใช้ INITCAP() (หรือฟังก์ชันที่เทียบเท่า) ได้โดยตรง แต่รุ่นเก่าต้องใช้วิธีนี้