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

Loại đầu ra nào được trả về bởi truy vấn con vô hướng MySQL? Những hạn chế khi sử dụng nó với truy vấn MySQL là gì?


Truy vấn con vô hướng MySQL trả về chính xác một giá trị cột từ một hàng và chúng ta có thể sử dụng nó khi cho phép một cột duy nhất. Tiếp theo là các trường hợp khi truy vấn con vô hướng trả về giá trị khác với một hàng -

Case1 - Khi nó trả về 0 hàng

Trong trường hợp nếu truy vấn con trả về 0 hàng thì giá trị của biểu thức truy vấn con vô hướng sẽ là NULL.

Case2 - Khi nó trả về nhiều hơn một hàng

Trong trường hợp nếu truy vấn con trả về nhiều hơn một hàng thì do thuộc tính của truy vấn con vô hướng, MySQL trả về lỗi.

Nó có thể được hiểu với sự trợ giúp của một ví dụ sử dụng dữ liệu từ bảng sau -

mysql> Select * from Customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+
4 rows in set (0.00 sec)

mysql> Select * from Reservations;
+------+-------------+------------+
| ID   | Customer_id | Day        |
+------+-------------+------------+
| 1    | 1           | 2017-12-30 |
| 2    | 2           | 2017-12-28 |
| 3    | 2           | 2017-12-29 |
| 4    | 1           | 2017-12-25 |
| 5    | 3           | 2017-12-26 |
+------+-------------+------------+
5 rows in set (0.00 sec)

Bây giờ, truy vấn sau sẽ trả về chính xác một giá trị cột cho một hàng -

mysql> Select Name from Customers WHERE customer_id = (Select Customer_id FROM reservations where id = 3);
+---------+
| Name    |
+---------+
| Yashpal |
+---------+
1 row in set (0.00 sec)

Bây giờ, giả sử nếu truy vấn con trả về 0 hàng thì điều đó có nghĩa là giá trị của biểu thức truy vấn con vô hướng là NULL. Nó được hiển thị trong truy vấn sau -

mysql> Select Name from Customers WHERE customer_id = (Select Customer_id FROM reservations where id = 10);
Empty set (0.00 sec)

Từ tập kết quả trên, chúng ta có thể thấy rằng MySQL trả về tập hợp rỗng, tức là 0 hàng vì giá trị của biểu thức truy vấn con vô hướng nếu NULL (không có id nào bằng 10).

Hạn chế trong việc sử dụng truy vấn con vô hướng với truy vấn MySQL là chúng ta có thể sử dụng truy vấn con vô hướng với các câu lệnh chỉ cho phép giá trị theo nghĩa đen. Ví dụ:như chúng ta biết rằng LIMIT yêu cầu các đối số nguyên theo nghĩa đen, do đó chúng ta không thể sử dụng các truy vấn con vô hướng để cung cấp các giá trị này.