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

เลือกค่าที่ตรงตามเงื่อนไขต่างกันในแถวต่างๆ ใน ​​MySQL หรือไม่


คุณสามารถเลือกค่าที่ตรงตามเงื่อนไขที่แตกต่างกันในแถวต่างๆ โดยใช้ IN() และ GROUP BY ไวยากรณ์มีดังนี้ −

เลือก yourColumnName1 จาก yourTableNameWHERE yourColumnName2 IN(value1,value2,.....N)GROUP BY yourColumnName1HAVING COUNT(DISTINCT yourColumnName2)=conditionValue;

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

mysql> สร้างตาราง DifferentRows-> (-> FirstRow int,-> SecondRow int-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.72 วินาที)

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

mysql> แทรกลงในค่า DifferentRows (10,10) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DifferentRows (10,100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงใน DifferentRows ค่า (10,300); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DifferentRows (20,100); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)

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

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

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

<ก่อนหน้า>+----------+-----------+| แถวแรก | SecondRow |+----------+-----------+| 10 | 10 || 10 | 100 || 10 | 300 || 20 | 100 |+----------+-----------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกค่าที่ตรงกับเงื่อนไขที่แตกต่างกันในแถวที่ต่างกัน สิ่งนี้ให้ระเบียน FirstRow ที่แตกต่างกันทั้งหมดที่มี SecondRow 10, 100, 300

mysql> เลือก FirstRow จาก DifferentRows-> โดยที่ SecondRow IN (10,100,300)-> จัดกลุ่มตาม FirstRow-> มีการนับ (Distinct SecondRow) =3;

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

<ก่อนหน้า>+----------+| แถวแรก |+----------+| 10 |+----------+1 แถวในชุด (0.00 วินาที)