Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: ดึงค่าเฉพาะเซลล์ (Cell Value) จากตาราง


คำอธิบาย

ใช้ SELECT column FROM table WHERE condition เพื่อดึงค่าเฉพาะเซลล์เดียว (Scalar Value)

ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง

mysql> create table DemoTable ( 
    Name varchar(40), 
    Score int ); 
Query OK, 0 rows affected (0.72 sec)

การเพิ่มข้อมูล

mysql> insert into DemoTable values('Chris Brown', 78); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('John Doe', 88); 
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Carol Taylor', 98); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('David Miller', 80); 
Query OK, 1 row affected (0.68 sec)

แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable;

ผลลัพธ์:

+--------------+-------+
| Name         | Score |
+--------------+-------+
| Chris Brown  | 78    |
| John Doe     | 88    |
| Carol Taylor | 98    |
| David Miller | 80    |
+--------------+-------+
4 rows in set (0.00 sec)

คิวรี่ดึงคะแนนของ Carol Taylor

mysql> select Score from DemoTable where Name = 'Carol Taylor';

ผลลัพธ์

+-------+
| Score |
+-------+
| 98    |
+-------+
1 row in set (0.00 sec)

คำอธิบาย

  • SELECT ระบุคอลัมน์ที่ต้องการ (Score)
  • WHERE ระบุเงื่อนไขระบุแถว (Name = 'Carol Taylor')
  • คืนค่า 1 เซลล์ (Scalar) หาก Primary Key/Unique
  • หากมีหลายแถว Match จะได้หลายแถว

การใช้งานใน Application (Scalar Subquery)

-- ใน WHERE Clause
SELECT * FROM OtherTable 
WHERE passing_score < (SELECT Score FROM DemoTable WHERE Name = 'Carol Taylor');

-- ใน SELECT Clause
SELECT Name, 
       (SELECT Score FROM DemoTable WHERE Name = 'Carol Taylor') as carol_score
FROM DemoTable;

LIMIT 1 ป้องกันหลายแถว

SELECT Score FROM DemoTable WHERE Name = 'Carol Taylor' LIMIT 1;