Lọc theo các cột giống hệt nhau trong cơ sở dữ liệu với truy vấn SQL

Tìm cách lọc các hàng của bạn từ bảng cơ sở dữ liệu SQL, MySQL hoặc MariaDB theo các cột giống hệt nhau? Bạn đang tìm một Truy vấn để chơi trên bảng điều khiển?

Gần đây tôi đã gặp phải tình huống cần phải lọc trên bảng cơ sở dữ liệu và chỉ hiển thị các hàng có hai cột có cùng giá trị văn bản. Sau nhiều giờ tìm kiếm, tôi đã tìm thấy giải pháp đơn giản và tôi đang chia sẻ nó với bạn.

Tôi không phải là lập trình viên, và tôi tin rằng hầu hết những người tìm kiếm những mẹo này cũng không có nhiều cảm giác về mã.

Tôi thường sử dụng chương trình Navicat để chỉnh sửa cơ sở dữ liệu, nó khá nhanh và tiện lợi, ngoài ra còn cho phép bạn chỉnh sửa các hàng và cột tự do ngang với Microsoft Excel hoặc Apple Numbers.

Hầu hết mọi người sử dụng PhpmyAdmin để quản lý cơ sở dữ liệu trang web của họ. Cả hai đều cho phép bạn chạy các tập lệnh thông qua SQL hoặc tab Truy vấn.

Sử dụng truy vấn SQL để lọc

Vì tôi không phải là chuyên gia về cơ sở dữ liệu nên tôi không biết rằng bạn có thể hiển thị các bảng đã lọc thông qua mã truy vấn, nhưng may mắn là tôi đã phát hiện ra.

Việc sử dụng của tôi trong cơ sở dữ liệu hoàn toàn là xóa các dòng, tìm kiếm văn bản và sử dụng Tìm kiếm và Thay thế, Tôi không biết rằng mã SQL siêu hữu ích.

Cá nhân tôi đã sử dụng các mã này để kiểm tra lỗi dịch và tìm các hàng chưa được dịch trong bảng cơ sở dữ liệu của dịch báo chí.

Filtrar por colunas idênticas em bancos de dado com sql query - sql filtro navicat

Mã truy vấn SQL

Các mã dưới đây hữu ích cho:

  • Tìm các hàng bằng nhau từ các cột khác nhau;
  • Tìm các hàng khác nhau từ các cột khác nhau;
  • Tìm nội dung bằng nhau trong hai cột;
SELECT * FROM `databasename`.`tablename` WHERE colum01 = colum02 ORDER BY `id` LIMIT 500 OFFSET 0; 

Đoạn mã chúng ta vừa xem xét cách sử dụng WHERE colum01 = colum02 để hiển thị các hàng có cùng kết quả trong cả hai cột. Mã có thể được mở rộng đến nhiều cột hơn nếu muốn.

Trong trường hợp bạn muốn thêm các bộ lọc truyền thống để tìm văn bản nhất định, bạn có thể mở rộng tập lệnh trước ĐẶT BỞI đặt một như trong đoạn mã dưới đây:

SELECT * FROM `databasename`.`tablename` WHERE colum01 = colum02 AND (`colum01` LIKE '%text%') ORDER BY `id` LIMIT 500 OFFSET 0; 

Sau chúng tôi có một mã trong ngoặc đơn chỉ lọc văn bản trong cột 01. GIỐNG để tìm các dòng có chứa giá trị đã lọc hoặc KHÔNG THÍCH để tìm các hàng không chứa giá trị.

Tập lệnh có thể được mở rộng thêm bằng cách sử dụng AND và mã khác. Bây giờ để kết thúc, chúng ta sẽ hiển thị một mã khác, nhưng thay vì hiển thị các hàng có giá trị bằng nhau, nó hiển thị các hàng có giá trị khác nhau bằng cách sử dụng !=.

SELECT * FROM `databasename`.`tablename` WHERE colum01 != colum02 ORDER BY `id` LIMIT 500 OFFSET 0; 

Hy vọng mã này sẽ giúp bạn thực sự lọc và tìm kiếm các hàng có giá trị giống hoặc khác từ các cột riêng biệt bằng cách sử dụng bộ lọc thông thường THÍCH và KHÔNG THÍCH.