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

วิธีใส่แบบสอบถามย่อยใน MySQL อย่างถูกต้อง?


คุณต้องปิดแบบสอบถามย่อยในวงเล็บ ไวยากรณ์มีดังนี้ −

select if((select count(*) from yourTableName ),'Yes','No') เป็น anyAliasName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง SelectIfDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(10) -> );Query OK, 0 แถวได้รับผลกระทบ (1.03 วินาที)

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

mysql> แทรกลงในค่า SelectIfDemo(Name) ('John');Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงในค่า SelectIfDemo(Name) ('Carol');Query OK, 1 แถวได้รับผลกระทบ ( 0.17 วินาที) mysql> แทรกลงในค่า SelectIfDemo (ชื่อ) ('Larry'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า SelectIfDemo (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.22 วินาที) mysql> แทรกลงในค่า SelectIfDemo (ชื่อ) ('Sam'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

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

นี่คือวิธีที่ถูกต้องในการใช้แบบสอบถามย่อยภายในวงเล็บที่ล้อมรอบ แบบสอบถามมีดังนี้ −

mysql> เลือก if((select count(*) from SelectIfDemo),'Yes','No') เป็นผลลัพธ์;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---------+| ผลลัพธ์ |+-------+| ใช่ |+--------+1 แถวในชุด (0.00 วินาที)