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

ดึงข้อความทางซ้ายของช่องว่างสุดท้ายในคอลัมน์ชื่อเต็ม MySQL

การดึงส่วนแรกของชื่อ (First Name) จากชื่อเต็ม

ใช้ฟังก์ชัน LEFT() ร่วมกับ LENGTH(), LOCATE() และ REVERSE() เพื่อหาตำแหน่งช่องว่างสุดท้าย แล้วตัดข้อความทางซ้าย

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

mysql> CREATE TABLE DemoTable1939 (FullName VARCHAR(20));
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO DemoTable1939 VALUES('Adam Smith');
mysql> INSERT INTO DemoTable1939 VALUES('Robert Downey, Jr.');
mysql> INSERT INTO DemoTable1939 VALUES('Sylvester Stallone');
mysql> INSERT INTO DemoTable1939 VALUES('Chris Hemsworth');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable1939;

ผลลัพธ์:

+--------------------+
| FullName           |
+--------------------+
| Adam Smith         |
| Robert Downey, Jr. |
| Sylvester Stallone |
| Chris Hemsworth    |
+--------------------+
4 rows in set (0.00 sec)

คำสั่ง SQL ดึงส่วนหน้าชื่อ

mysql> SELECT LEFT(FullName, LENGTH(FullName) - LOCATE(' ', REVERSE(FullName)) + 1)
    -> FROM DemoTable1939;

ผลลัพธ์:

+---------------------------------------------------------------------+
| LEFT(FullName, LENGTH(FullName) - LOCATE(' ', REVERSE(FullName))+1) |
+---------------------------------------------------------------------+
| Adam                                                                |
| Robert Downey,                                                      |
| Sylvester                                                           |
| Chris                                                               |
+---------------------------------------------------------------------+
4 rows in set (0.00 sec)

คำอธิบาย: REVERSE(FullName) กลับสตริง, LOCATE(' ', ...) หาตำแหน่งช่องว่างแรก (ซึ่งเป็นช่องว่างสุดท้ายของสตริงเดิม), คำนวณความยาวที่ต้องการตัดด้วย LEFT()