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

MySQL ไม่คำนึงถึงขนาดตัวพิมพ์ DISTINCT?


หากคุณต้องการความแตกต่างที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คุณต้องใช้ UPPER() หรือ LOWER()

กรณีที่ 1: ใช้ UPPER().

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

เลือก DISTINCT UPPER(yourColumnName) จาก yourTableName;

กรณีที่ 2: ใช้ LOWER().

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

เลือก DISTINCT LOWER(yourColumnName) จาก yourTableName;

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

mysql> สร้างตาราง CaseInsensitiveDistinctDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> UserEmailId varchar(30), -> UserPassword varchar(10), -> PRIMARY KEY(Id) -> );Query OK, 0 แถวที่ได้รับผลกระทบ (0.64 วินาที)

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

mysql> แทรกลงใน CaseInsensitiveDistinctDemo(UserEmailId,UserPassword) values('John@gmail.com','john123');Query OK, 1 แถวที่ได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ( 'john@gmail.com','654321');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.43 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ('Mike@gmail.com','999999'); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ('mike@gmail.com','334556'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน CaseInsensitiveDistinctDemo (UserEmailId ,UserPassword) ค่า ('Carol@gmail.com','1010101');แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ('Larry@gmail.com','12345678 ');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.20 วินาที)

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

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

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

<ก่อนหน้า>+----+-----------+--------------+| รหัส | UserEmailId | รหัสผ่านผู้ใช้ |+----+-----------+------------+| 1 | John@gmail.com | john123 || 2 | john@gmail.com | 654321 || 3 | Mike@gmail.com | 999999 || 4 | mike@gmail.com | 334556 || 5 | Carol@gmail.com | 1010101 || 6 | Larry@gmail.com | 12345678 |+----+-----------+--------------+6 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อเลือกความแตกต่างที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่

กรณีที่ 1: ใช้ UPPER() แบบสอบถามมีดังนี้:

mysql> เลือกส่วนบนที่ชัดเจน (UserEmailId) จาก CaseInsensitiveDistinctDemo;

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

<ก่อนหน้า>+--------------------+| บน (UserEmailId) |+--------------------+| JOHN@GMAIL.COM || MIKE@GMAIL.COM || CAROL@GMAIL.COM || LARRY@GMAIL.COM |+--------------------+4 แถวในชุด (0.06 วินาที)

กรณีที่ 2: ใช้ LOWER() แบบสอบถามมีดังนี้:

mysql> เลือกความแตกต่างที่ต่ำกว่า (UserEmailId) จาก CaseInsensitiveDistinctDemo;

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

<ก่อนหน้า>+--------------------+| ต่ำกว่า (UserEmailId) |+--------------------+| john@gmail.com || mike@gmail.com || carol@gmail.com || larry@gmail.com |+--------------------+4 แถวในชุด (0.00 วินาที)