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
).