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('[email protected]','john123');Query OK, 1 แถวที่ได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ( '[email protected]','654321');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.43 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ('[email protected]','999999'); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ('[email protected]','334556'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน CaseInsensitiveDistinctDemo (UserEmailId ,UserPassword) ค่า ('[email protected]','1010101');แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า CaseInsensitiveDistinctDemo (UserEmailId, UserPassword) ('[email protected]','12345678 ');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.20 วินาที)

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

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

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

<ก่อนหน้า>+----+-----------+--------------+| รหัส | UserEmailId | รหัสผ่านผู้ใช้ |+----+-----------+------------+| 1 | [email protected] | john123 || 2 | [email protected] | 654321 || 3 | [email protected] | 999999 || 4 | [email protected] | 334556 || 5 | [email protected] | 1010101 || 6 | [email protected] | 12345678 |+----+-----------+--------------+6 แถวในชุด (0.00 วินาที)

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

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

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

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

<ก่อนหน้า>+--------------------+| บน (UserEmailId) |+--------------------+| [email protected] || [email protected] || [email protected] || [email protected] |+--------------------+4 แถวในชุด (0.06 วินาที)

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

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

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

<ก่อนหน้า>+--------------------+| ต่ำกว่า (UserEmailId) |+--------------------+| [email protected] || [email protected] || [email protected] || [email protected] |+--------------------+4 แถวในชุด (0.00 วินาที)