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

ใช้ "WHERE binary" ใน SQL?


คีย์เวิร์ดไบนารีสามารถใช้หลัง WHERE clause เพื่อเปรียบเทียบค่ากับการจับคู่แบบตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ทั้งหมด

ต่อไปนี้เป็นตัวอย่าง −

กรณีที่ 1 - การจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่

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

mysql> เลือก 'joHN'='JOHN' เป็นผลลัพธ์;

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

<ก่อนหน้า>+---------+| ผลลัพธ์ |+-------+| 1 |+--------+1 แถวในชุด (0.00 วินาที)

ในผลลัพธ์ตัวอย่างด้านบน ผลลัพธ์เป็นจริงในขณะที่เรารู้ว่า joHN และ JOHN เป็นคำสองคำที่ต่างกัน นี่ไม่ใช่การจับคู่ที่ละเอียดอ่อน

กรณีที่ 2 − หากคุณต้องการจับคู่แบบตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ให้ใช้คีย์เวิร์ดไบนารี

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

mysql> เลือกไบนารี 'joHN'='JOHN' เป็นผลลัพธ์;

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

<ก่อนหน้า>+---------+| ผลลัพธ์ |+-------+| 0 |+--------+1 แถวในชุด (0.00 วินาที)

ให้เราดูคำถามอื่น -

mysql> เลือกไบนารี 'JOHN'='JOHN' เป็นผลลัพธ์;

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

<ก่อนหน้า>+---------+| ผลลัพธ์ |+-------+| 1 |+--------+1 แถวในชุด (0.00 วินาที)

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

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

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

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

mysql> แทรกลงในค่า binaryKeywordDemo (ชื่อ) ('bOB'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า binaryKeywordDemo (ชื่อ) ('bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.13 วินาที) mysql> แทรกลงในค่า binaryKeywordDemo (ชื่อ) ('BOB'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า binaryKeywordDemo (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.18 วินาที) mysql> แทรกลงในค่า binaryKeywordDemo (ชื่อ) ('bOb'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า binaryKeywordDemo (ชื่อ) ('boB'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.21 วินาที)

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

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

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

<ก่อนหน้า>+---+------+| รหัส | ชื่อ |+----+------+| 1 | บ๊อบ || 2 | บ๊อบ || 3 | บ๊อบ || 4 | บ๊อบ || 5 | บ๊อบ || 6 | boB |+----+------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นข้อความค้นหาเพื่อให้ตรงกันทุกประการ เช่น ตรงตามตัวพิมพ์ -

mysql> เลือก *จาก binaryKeywordDemo โดยที่ Name='Bob';

นี่คือผลลัพธ์ -

<ก่อนหน้า>+---+------+| รหัส | ชื่อ |+----+------+| 4 | Bob |+----+------+1 แถวในชุด (0.00 วินาที)