คำอธิบาย
ใช้ 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;