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

ค้นหาผู้ใช้ทั้งหมดที่มีนามสกุลไม่ซ้ำกันใน MySQL?


หากต้องการค้นหาผู้ใช้ทั้งหมดที่มีนามสกุลไม่ซ้ำกัน ให้ใช้ GROUP BY HAVING COUNT()

ให้เราสร้างตาราง -

ตัวอย่าง

mysql> create table demo76
   -> (
   -> firstName varchar(20),
   -> lastName varchar(20)
   -> );
Query OK, 0 rows affected (9.29

แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -

ตัวอย่าง

mysql> insert into demo76 values('John','Doe');
Query OK, 1 row affected (2.52

mysql> insert into demo76 values('David','Smith');
Query OK, 1 row affected (6.31

mysql> insert into demo76 values('Adam','Smith');
Query OK, 1 row affected (1.52

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

ตัวอย่าง

mysql> select *from demo76;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

ผลลัพธ์

+-----------+----------+

| firstName | lastName |

+-----------+----------+

| John      | Doe      |

| David     | Smith    |

| Adam      | Smith    |

+-----------+----------+

3 rows in set (0.00 sec)

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาผู้ใช้ทั้งหมดที่มีนามสกุลเฉพาะ -

ตัวอย่าง

mysql> select max(tbl.firstName), tbl.lastName,
   -> count(distinct tbl.firstName) as CountOfFirstName
   -> from demo76 as tbl
   -> group by tbl.lastName
   -> having count(distinct tbl.firstName) = 1;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

ผลลัพธ์

+--------------------+----------+------------------+

| max(tbl.firstName) | lastName | CountOfFirstName |

+--------------------+----------+------------------+

| John               | Doe      |                1 |

+--------------------+----------+------------------+

1 row in set (0.00 sec)