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

เหตุใดคำหลัก BINARY จึงใช้กับโอเปอเรเตอร์ MySQL REGEXP


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

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

mysql> สร้างตาราง DemoTable-> (-> ชื่อ varchar(100)-> ); สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.46 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('John'); Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable ('JOHN'); Query OK, 1 แถวที่ได้รับผลกระทบ (0.14 วินาที)mysql> แทรก ลงในค่า DemoTable('john');Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงในค่า DemoTable ('JOhn');Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)

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

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

ผลลัพธ์

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

<ก่อนหน้า>+------+| ชื่อ |+------+| จอห์น || จอห์น || จอห์น || JOhn |+------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเรียนรู้ความแตกต่างระหว่างตัวดำเนินการ REGEXP และ REGEXP กับ BINARY -

mysql> เลือกชื่อ REGEXP 'JOHN' AS ResultWithOutBinary, ชื่อ REGEXP BINARY 'JOHN' เป็น ResultWithBinary จาก DemoTable;

ผลลัพธ์

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

<ก่อนหน้า>+---------------------+-----------------+| ResultWithOutBinary | ResultWithBinary |+----------------------+-----------------+| 1 | 0 || 1 | 1 || 1 | 0 || 1 | 0 |+---------------------------+-----------------+4 แถวในชุด (0.04 วินาที)