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

เลือกแถว MySQL ที่ซ้ำกันทั้งหมดตามหนึ่งหรือสองคอลัมน์?


สำหรับสิ่งนี้ ให้ใช้ subquery ร่วมกับ HAVING clause ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( StudentId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(20), StudentLastName varchar(20) ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.27 วินาที)

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

mysql> แทรกลงใน DemoTable (StudentFirstName,StudentLastName) ค่า ('John', 'Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.04 วินาที) mysql> แทรกลงใน DemoTable (StudentFirstName, StudentLastName) ค่า ('Carol', 'Taylor'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.04 วินาที) mysql> แทรกลงในค่า DemoTable (StudentFirstName, StudentLastName) ('John', 'Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงใน DemoTable (StudentFirstName,StudentLastName) ค่า ('John','Brown');Query OK, 1 แถวได้รับผลกระทบ (0.05 วินาที)mysql> แทรกลงใน DemoTable (StudentFirstName,StudentLastName) ค่า ('David','Miller');Query OK , 1 แถวได้รับผลกระทบ (0.06 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+-----------+-------------- ---+| รหัสนักศึกษา | StudentFirstName | StudentLastName |+-----------+-----------------+---------------- -+| 1 | จอห์น | สมิธ || 2 | แครอล | เทย์เลอร์ || 3 | จอห์น | โด || 4 | จอห์น | สีน้ำตาล || 5 | เดวิด | มิลเลอร์ |+-----------+--------------------------+---------------- -+5 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเลือกแถวที่ซ้ำกันทั้งหมดโดยยึดตามหนึ่งหรือสองคอลัมน์ ในที่นี้เรากำลังนับชื่อที่ปรากฏมากกว่าหนึ่งครั้ง เช่น ซ้ำกัน -

mysql> เลือก StudentId จาก DemoTable โดยที่ StudentFirstName=(เลือก StudentFirstName จาก DemoTable มี count(StudentFirstName)> 1);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+| รหัสนักศึกษา |+-----------+| 1 || 3 || 4 |+-----------+3 แถวในชุด (0.03 วินาที)