Truy xuất giá trị đơn lẻ (scalar) từ bảng MySQL
Sử dụng SELECT column FROM table WHERE condition để lấy giá trị của một ô cụ thể (một cột, một hàng).
1. Tạo bảng và chèn dữ liệu
mysql> CREATE TABLE DemoTable (
Name VARCHAR(40),
Score INT
);
mysql> INSERT INTO DemoTable VALUES
('Chris Brown', 78), ('John Doe', 88), ('Carol Taylor', 98), ('David Miller', 80);
2. Xem dữ liệu
mysql> SELECT * FROM DemoTable;
+--------------+-------+ | Name | Score | +--------------+-------+ | Chris Brown | 78 | | John Doe | 88 | | Carol Taylor | 98 | | David Miller | 80 | +--------------+-------+
3. Truy vấn: Lấy Score của 'Carol Taylor'
mysql> SELECT Score FROM DemoTable WHERE Name = 'Carol Taylor';
4. Kết quả
+-------+ | Score | +-------+ | 98 | +-------+
Các trường hợp liên quan:
- 1 hàng, 1 cột (scalar):
SELECT Score FROM DemoTable WHERE Name='Carol Taylor'→ 98 - 1 hàng, nhiều cột:
SELECT Name, Score FROM DemoTable WHERE Name='Carol Taylor' - Nhiều hàng, 1 cột:
SELECT Score FROM DemoTable WHERE Score > 80→ 88, 98 - Không khớp hàng nào: Empty set (không phải NULL)
Ứng dụng trong lập trình (subquery):
-- Dùng trong điều kiện SELECT * FROM OtherTable WHERE score > (SELECT Score FROM DemoTable WHERE Name = 'Carol Taylor'); -- Dùng trong UPDATE UPDATE OtherTable SET target_score = (SELECT Score FROM DemoTable WHERE Name = 'Carol Taylor') WHERE id = 1;
Lưu ý: Subquery trả về scalar phải đảm bảo tối đa 1 hàng. Nếu có thể nhiều hàng, dùng LIMIT 1 hoặc hàm tổng hợp (MAX, AVG).
Đảm bảo duy nhất: Thêm UNIQUE index trên cột Name hoặc dùng Primary Key.