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

วิธีเลือกค่าทั้งหมดจากตารางเพียงครั้งเดียวหากซ้ำกัน?


คุณสามารถใช้คีย์เวิร์ดที่แตกต่างกันเพื่อเลือกค่าทั้งหมดจากตารางได้เพียงครั้งเดียวหากซ้ำกัน

ไวยากรณ์มีดังนี้

เลือก yourColumnName ที่แตกต่างจาก yourTableName;

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

mysql> สร้างตาราง displayOnlyDistinctValue -> ( -> UserId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(100), -> UserAge int -> );Query OK, 0 แถวได้รับผลกระทบ (0.47 วินาที)

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

แบบสอบถามมีดังนี้

mysql> แทรกลงใน displayOnlyDistinctValue(UserName,UserAge) values('Larry',23);Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงใน displayOnlyDistinctValue(ชื่อผู้ใช้, UserAge) ค่า ('Mike',23);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงใน displayOnlyDistinctValue (ชื่อผู้ใช้ UserAge) ค่า ('Larry', 21); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน displayOnlyDistinctValue (ชื่อผู้ใช้ UserAge) ค่า ('แซม', 23); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงใน displayOnlyDistinctValue (ชื่อผู้ใช้ UserAge) ค่า ('Carol', 25); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน displayOnlyDistinctValue(ชื่อผู้ใช้, UserAge) ค่า ('Sam',26); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน displayOnlyDistinctValue (ชื่อผู้ใช้ UserAge) ค่า ('Sam',27); แบบสอบถามตกลง 1 แถวที่ได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า displayOnlyDistinctValue (ชื่อผู้ใช้ UserAge) ('Bob', 22); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า displayOnlyDistinctValue (ชื่อผู้ใช้ UserAge) ('Larry' ,22);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

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

แบบสอบถามมีดังนี้

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

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

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 1 | แลร์รี่ | 23 || 2 | ไมค์ | 23 || 3 | แลร์รี่ | 21 || 4 | แซม | 23 || 5 | แครอล | 25 || 6 | แซม | 26 || 7 | แซม | 27 || 8 | บ๊อบ | 22 || 9 | แลร์รี่ | 22 |+-------+----------+---------+9 แถวในชุด (0.00 วินาที)

นี่คือคิวรีเพื่อเลือกค่าทั้งหมดจากตารางเพียงครั้งเดียวหากซ้ำกัน

กรณีที่ 1 - ในชื่อคอลัมน์ชื่อผู้ใช้

แบบสอบถามมีดังนี้

mysql> เลือกชื่อผู้ใช้ที่แตกต่างจาก displayOnlyDistinctValue

ผลลัพธ์

<ก่อนหน้า>+----------+| ชื่อผู้ใช้ |+----------+| แลร์รี่ || ไมค์ || แซม || แครอล || Bob |+----------+5 แถวในชุด (0.00 วินาที)

กรณีที่ 2 -ในชื่อคอลัมน์ UserAge

แบบสอบถามมีดังนี้

mysql> เลือก UserAge ที่แตกต่างจาก displayOnlyDistinctValue;

ผลลัพธ์..

<ก่อนหน้า>+---------+| อายุผู้ใช้ |+---------+| 23 || 21 || 25 | | 26 || 27 || 22 |+---------+6 แถวในชุด (0.00 วินาที)