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

เหตุใดการเปรียบเทียบประเภทใน MySQL จึงไม่ทำให้เกิดข้อผิดพลาด


หากคุณพยายามเปรียบเทียบสตริงกับ int MySQL จะไม่แสดงข้อผิดพลาดเนื่องจากจะแปลงสตริงเป็น int ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1852 ( Value1 varchar(20), Value2 int ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1852 ('1John',1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1852 ('John', 1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที )mysql> แทรกลงในค่า DemoTable1852 ('1',1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1852 ('John1', 1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) 

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

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

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

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

นี่คือแบบสอบถามเพื่อเปรียบเทียบประเภทใน MySQL และจะไม่ทำให้เกิดข้อผิดพลาด -

mysql> เลือก Value1,Value2, Value1=Value2 เป็นผลลัพธ์จาก DemoTable1852;

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

<ก่อนหน้า>+---------+---------+-------+| Value1 | Value2 | ผลลัพธ์ |+---------+---------+--------+| 1จอห์น | 1 | 1 || จอห์น | 1 | 0 || 1 | 1 | 1 || John1 | 1 | 0 |+--------+---------+--------+4 แถวในชุด คำเตือน 3 ครั้ง (0.00 วินาที)