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

ฉันจะส่งคืนผลลัพธ์หลายรายการในแบบสอบถามย่อย MySQL ด้วย IN () ได้อย่างไร


ใน MySQL คุณสามารถส่งคืนผลลัพธ์หลายรายการได้อย่างง่ายดาย แต่ยังทำสิ่งนี้ได้ด้วยแบบสอบถามย่อยโดยใช้ IN() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1317-> (-> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY,-> ชื่อ varchar(20)-> ); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.49 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert

mysql> แทรกลงในค่า DemoTable1317(ชื่อ) ('Chris Brown'); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable1317 (ชื่อ) ('John Doe'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable1317 (ชื่อ) ('Adam Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable1317 (ชื่อ) ('John Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable1317 (ชื่อ) ('David Miller'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable1317 (ชื่อ) ('Carol Taylor'); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable1317;

ผลลัพธ์

<ก่อนหน้า>+----+--------------+| รหัส | ชื่อ |+----+-------------+| 1 | คริส บราวน์ || 2 | จอห์น โด || 3 | อดัม สมิธ || 4 | จอห์น สมิธ || 5 | เดวิด มิลเลอร์ || 6 | Carol Taylor |+----+-------------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อส่งคืนผลลัพธ์หลายรายการในแบบสอบถามย่อย MySQL -

mysql> เลือกชื่อจาก DemoTable1317-> โดยที่ Id IN ( เลือก Id จาก DemoTable1317);

ผลลัพธ์

<ก่อนหน้า>+-------------+| ชื่อ |+-------------+| คริส บราวน์ || จอห์น โด || อดัม สมิธ || จอห์น สมิธ || เดวิด มิลเลอร์ || Carol Taylor |+-------------+6 แถวในชุด (0.00 วินาที)