Denna sats returnerar rader för my_field = '13a' :
SELECT * FROM my_table WHERE my_field=13
Eftersom MySQL utför typkonvertering från sträng till nummer under jämförelsen, vrider du '13a' till 13 . Mer om det på den här dokumentationssidan
.
Att lägga till citattecken förvandlar heltal till en sträng, så MySQL utför endast strängjämförelse. Självklart, '13' kan inte vara lika med '13a' .
LIKE satsen utför alltid strängjämförelse (såvida inte någon av operanderna är NULL , i vilket fall resultatet är NULL ).