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

MySQL: ดึงแถวข้อมูลเฉพาะจากชุดแถวตามเงื่อนไข

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

mysql> create table DemoTable1972 ( Section char(1), StudentName varchar(20) );
mysql> insert into DemoTable1972 values('D','Chris');
mysql> insert into DemoTable1972 values('B','David');
mysql> insert into DemoTable1972 values('A','Mike');
mysql> insert into DemoTable1972 values('C','Carol');

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

+---------+-------------+
| Section | StudentName |
+---------+-------------+
| D       | Chris       |
| B       | David       |
| A       | Mike        |
| C       | Carol       |
+---------+-------------+

Query ดึงแถวที่ Section > 'C' เรียงลำดับ จำกัด 2 แถว

mysql> select * from DemoTable1972 where Section > 'C' order by Section limit 2;

ผลลัพธ์

+---------+-------------+
| Section | StudentName |
+---------+-------------+
| D       | Chris       |
+---------+-------------+
1 row in set (0.00 sec)

อธิบาย

  • Section > 'C' เปรียบเทียบตัวอักษร ตามลำดับ ASCII/Unicode: D > C จริง, A,B < C
  • ORDER BY Section เรียงจากน้อยไปมาก (A, B, C, D...)
  • LIMIT 2 จำกัดผลลัพธ์สูงสุด 2 แถว (ในที่นี้มีแค่ 1 แถวที่ตรงเงื่อนไข)

กรณีศึกษาเพิ่มเติม

-- ดึง 2 แถวแรกตามลำดับ Section
SELECT * FROM DemoTable1972 ORDER BY Section LIMIT 2;

-- ดึงแถวที่ 3-4 (Offset 2, Limit 2)
SELECT * FROM DemoTable1972 ORDER BY Section LIMIT 2 OFFSET 2;