Computer >> Máy Tính >  >> Lập trình >> C#

Chỉ trả về các trường xuất hiện một số lần nhất định bằng cách sử dụng MySQL DISTINCT?

Để trả về các trường xuất hiện một số lần nhất định, cú pháp như sau -

select distinct yourColumnName, count(yourColumnName)
from yourTableName
where yourColumnName LIKE 'J%'
group by yourColumnName
having count(*) > 1
order by yourColumnName;

Đầu tiên chúng ta hãy tạo một bảng -

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

Chèn một số bản ghi vào bảng bằng lệnh chèn -

Mysql> insert into DemoTable1500 values(‘Adam’);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1500 values('John');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1500 values('Mike');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1500 values('John');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1500 values('Jace');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1500 values('Jace');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1500 values('Jackie');
Query OK, 1 row affected (0.06 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1500;

Điều này sẽ tạo ra kết quả sau -

+--------+
| Name   |
+--------+
| Adam   |
| John   |
| Mike   |
| John   |
| Jace   |
| Jace   |
| Jackie |
+--------+
7 rows in set (0.00 sec)

Sau đây là truy vấn để trả về các trường xuất hiện một số lần nhất định bằng cách sử dụng MySQL DISTINCT -

mysql> select distinct Name, count(Name)
   -> from DemoTable1500
   -> where Name LIKE 'J%'
   -> group by Name
   -> having count(*) > 1
   -> order by Name;

Điều này sẽ tạo ra kết quả sau -

+------+-------------+
| Name | count(Name) |
+------+-------------+
| Jace |           2 |
| John |           2 |
+------+-------------+
2 rows in set (0.00 sec)