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

รับ MySQL DISTINCT ให้ทำงานอย่างถูกต้องหากระเบียนมีช่องว่างหรือไม่


เพื่อให้ได้ความชัดเจนรวมถึงช่องว่าง คุณสามารถใช้ไวยากรณ์ด้านล่าง −

เลือก DISTINCT แทนที่ (yourColumnName,' ','') จาก yourTableName;

ให้เราสร้างตารางก่อน:

mysql>สร้างตาราง DemoTable (รหัส int ไม่ใช่ NULL AUTO_INCREMENT คีย์หลัก ชื่อ varchar(20)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.63 วินาที)

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

mysql>แทรกลงในค่า DemoTable(Name)('John ');Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql>แทรกลงในค่า DemoTable(Name)(' John ');Query OK, 1 แถวได้รับผลกระทบ ( 0.14 วินาที)mysql>แทรกลงในค่า DemoTable(ชื่อ) ('John');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.09 วินาที)mysql>แทรกลงในค่า DemoTable (ชื่อ) ('แซม');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.15 วินาที)mysql>แทรกลงในค่า DemoTable(ชื่อ) ('แครอล');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.22 วินาที)mysql>แทรกลงในค่า DemoTable(ชื่อ) (' แซม');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.14 วินาที)mysql>แทรกลงในค่า DemoTable(ชื่อ)('ไมค์');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)mysql>แทรกลงในค่า DemoTable(ชื่อ)('David');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.17 วินาที)

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

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

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

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

ต่อไปนี้คือข้อความค้นหาเพื่อแยกความแตกต่างรวมถึงช่องว่าง:

mysql>เลือก DISTINCT แทนที่ (ชื่อ,' ','') จาก DemoTable;

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

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