Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy giá trị ô cụ thể trong MySQL: SELECT cột WHERE điều kiện

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.