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

แสดงข้อมูลทั้งหมดยกเว้นแถวที่กำหนดใน MySQL

การเลือกข้อมูลทั้งหมดยกเว้นแถวที่ระบุใน MySQL

ใช้ WHERE column IN (value1, value2, ...) เพื่อเลือกเฉพาะค่าที่ต้องการ (กลับกันกับ NOT IN)

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (Id int, FirstName varchar(20));
mysql> insert into DemoTable values(100,'Larry');
mysql> insert into DemoTable values(10,'Chris');
mysql> insert into DemoTable values(110,'Robert');
mysql> insert into DemoTable values(90,'David');

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

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Larry     |
| 10   | Chris     |
| 110  | Robert    |
| 90   | David     |
+------+-----------+

คิวรีเลือกเฉพาะ Id 110, 90, 100 (ข้าม Id 10):

mysql> select * from DemoTable where Id IN (110,90,100);
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Larry     |
| 110  | Robert    |
| 90   | David     |
+------+-----------+

วิธีอื่น (ใช้ NOT IN):

SELECT * FROM DemoTable WHERE Id NOT IN (10);

ผลลัพธ์เหมือนกัน | NOT IN อ่านง่ายกว่าเมื่อต้องการ "ข้ามน้อย" | IN อ่านง่ายกว่าเมื่อต้องการ "เลือกน้อย"

ข้อควรระวังกับ NOT IN: หาก Subquery คืนค่า NULL จะทำให้ผลลัพธ์ว่างหมด | ใช้ NOT EXISTS แทนปลอดภัยกว่า