Bạn có thể sử dụng các câu lệnh SQL để chọn các hàng từ cơ sở dữ liệu để hiển thị trên báo cáo của mình
- Chọn hàng bằng câu lệnh SQL
Giới hạn chọn hàng hoặc tạo tập hợp con của dữ liệu trong bảng. Bạn chọn hàng bằng cách tạo điều kiện hàng. - Chọn các hàng không có dữ liệu
Bạn có thể chọn các hàng không có dữ liệu trong một cột. Các cột không chứa dữ liệu được coi là rỗng, có nghĩa là giá trị của chúng không xác định. - Chọn hàng bằng cách sử dụng giá trị ký tự cụ thể
Bạn có thể sử dụng giá trị ký tự để chọn hàng bạn muốn xem. Đảm bảo rằng bạn đặt dữ liệu trong dấu ngoặc đơn. - Chọn hàng theo điều kiện
Bạn có thể chỉ định điều kiện khi chọn hàng. - Chọn các hàng sử dụng các điều kiện ngược lại
Bạn chỉ định điều ngược lại của bất kỳ điều kiện nào bằng cách nhập NOT trước toàn bộ điều kiện. - Các ký hiệu lựa chọn để thu hẹp lựa chọn hàng
Để chọn các hàng sử dụng các ký hiệu lựa chọn cho dữ liệu ký tự hoặc đồ họa, hãy sử dụng từ khóa LIKE trong mệnh đề WHERE và dấu gạch dưới và dấu phần trăm làm ký hiệu lựa chọn. - Thu hẹp lựa chọn hàng bằng nhiều điều kiện hàng
Bạn có thể tạo nhiều điều kiện hàng và sử dụng các từ khóa AND, OR hoặc IN để kết nối các điều kiện. - Loại bỏ các hàng trùng lặp
Sử dụng từ khóa DISTINCT để loại bỏ các hàng trùng lặp khỏi báo cáo.
chủ đề phụ huynh. Xem dữ liệu trong cơ sở dữ liệu bằng câu lệnh SQL
Để chọn các hàng cụ thể, hãy sử dụng hàm FIND_IN_SET[] trong MySQL. Trước tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable [ ListOfValues varchar[200] ]; Query OK, 0 rows affected [0.31 sec]
Chèn một số bản ghi vào bảng bằng lệnh chèn -
mysql> insert into DemoTable values['112,114,567,Java,345']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['222,214,256']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['2,567,98,C']; 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 DemoTable;
Điều này sẽ tạo ra đầu ra sau -
+----------------------+ | ListOfValues | +----------------------+ | 112,114,567,Java,345 | | 222,214,256 | | 2,567,98,C | +----------------------+ 3 rows in set [0.00 sec]
Sau đây là truy vấn để chọn các hàng cụ thể trong MySQL -
mysql> select *from DemoTable where find_in_set['2',ListOfValues] >0;
Điều này sẽ tạo ra đầu ra sau -
+--------------+ | ListOfValues | +--------------+ | 2,567,98,C | +--------------+ 1 row in set [0.03 sec]
mysql> insert into DemoTable values['112,114,567,Java,345']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['222,214,256']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['2,567,98,C']; Query OK, 1 row affected [0.06 sec]3 với phân vùng, chúng tôi có thể chỉ định số hàng duy nhất cho mỗi phân vùng được tạo. Phân vùng có thể được tạo cho bất kỳ cột nào. Cơ chế phân vùng cố gắng nhóm các hàng có cùng giá trị theo cột được chỉ định và gán số hàng cho các hàng trong nhóm [mỗi giá trị tạo một nhóm sẽ có các hàng được đánh số từ
SELECT
[@row_number := @row_number + 1] AS `row_number`,
`client_id`,
`creation_time`
FROM `clients`
JOIN [SELECT @row_number := 0] r
0 đến N]. Vì vậy, mẹo là tạo một phân vùng/nhóm chung bằng cách sử dụng một cột bổ sung luôn lưu trữ cùng một giá trị cho mỗi hàng - cột này sẽ cho phép tạo một nhóm chung - trong ví dụ bên dưới, SELECT
[@row_number := @row_number + 1] AS `row_number`,
`client_id`,
`creation_time`
FROM `clients`
JOIN [SELECT @row_number := 0] r
1 là tên cột được sử dụng để tạo một nhóm chung . Trong trường hợp bên dưới cột SELECT
[@row_number := @row_number + 1] AS `row_number`,
`client_id`,
`creation_time`
FROM `clients`
JOIN [SELECT @row_number := 0] r
1 luôn chứa giá trị mysql> insert into DemoTable values['112,114,567,Java,345']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['222,214,256']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['2,567,98,C']; Query OK, 1 row affected [0.06 sec]4
Đôi khi bạn có thể cần lấy số hàng trong MySQL để báo cáo và phân tích. Số hàng rất hữu ích trong việc xếp hạng và sắp xếp dữ liệu. Nó cũng hữu ích trong việc lọc dữ liệu dựa trên giá trị số hàng. Trong bài viết này, chúng ta sẽ xem xét cách lấy row_number trong MySQL
Cách lấy row_number trong MySQL
Hàm Row_number[] có sẵn ngay từ MySQL 8. 0
Đây là cú pháp của cú pháp row_number[]. Xin lưu ý, mệnh đề PARTITION BY là tùy chọn
ROW_NUMBER[] OVER [ PARTITION BY ORDER BY [ASC|DESC]]
Giả sử bạn có bảng bán hàng sau
mysql> insert into DemoTable values['112,114,567,Java,345']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['222,214,256']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['2,567,98,C']; Query OK, 1 row affected [0.06 sec]0
Cũng đọc. Cách lấy dữ liệu mỗi giờ trong MySQL
Dưới đây là một ví dụ về việc sử dụng hàm row_number để xếp hạng các hàng theo thứ tự giảm dần của cột số lượng
mysql> insert into DemoTable values['112,114,567,Java,345']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['222,214,256']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['2,567,98,C']; Query OK, 1 row affected [0.06 sec]1
Trong truy vấn trên, chúng tôi coi toàn bộ bảng là một phân vùng duy nhất và không cung cấp mệnh đề PARTITION BY. Chúng tôi cũng sắp xếp các hàng này theo thứ tự giảm dần theo cột số lượng và sử dụng hàm row_number[] để xếp hạng các hàng này
Cũng đọc. Cách lấy dữ liệu 1 giờ qua trong MySQL
Tuy nhiên, nếu bạn đang sử dụng MySQL insert into DemoTable values['112,114,567,Java,345']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['222,214,256']; Query OK, 1 row affected [0.06 sec] mysql> insert into DemoTable values['2,567,98,C']; Query OK, 1 row affected [0.06 sec]2
Trong truy vấn SQL ở trên, chúng tôi sử dụng biến tạm thời rownum để lưu trữ số hàng. Khi MySQL tuần tự duyệt qua các hàng, nó sẽ gán số hàng cho mỗi hàng theo cách tăng dần
Cần một công cụ báo cáo cho MySQL? . Thử nó ngay hôm nay