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

ดึงนามสกุลไฟล์ที่ไม่ซ้ำกันจากตารางชื่อไฟล์ใน MySQL

ใช้ SUBSTRING_INDEX() ร่วม DISTINCT เพื่อแยกส่วนขยายไฟล์

ตัวอย่าง

mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FileName text );
Query OK, 0 rows affected (0.75 sec)
mysql> insert into DemoTable(FileName) values('AddTwoValue.java');                    Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(FileName) values('Image1.png');                           Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(FileName) values('MultiplicationOfTwoNumbers.java');     Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(FileName) values('Palindrome.c');                         Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(FileName) values('FoodCart.png');                         Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable(FileName) values('Permutation.py');                       Query OK, 1 row affected (0.18 sec)

ดึงนามสกุลที่ไม่ซ้ำ

mysql> SELECT DISTINCT SUBSTRING_INDEX(FileName,'.',-1) FROM DemoTable;
+----------------------------------+
| SUBSTRING_INDEX(FileName,'.',-1) |
+----------------------------------+
| java                             |
| png                              |
| c                                |
| py                               |
+----------------------------------+

SUBSTRING_INDEX(str, delim, count) โดย count = -1 หมายถึงเอาส่วนหลัง delimiter ตัวสุดท้าย