このステートメントは、my_field = '13a'の行を返します :
SELECT * FROM my_table WHERE my_field=13
MySQLは比較中に文字列から数値への型変換を実行するため、'13a'を回します 13へ 。詳細については、このドキュメントページのをご覧ください
。
引用符を追加すると整数が文字列に変わるため、MySQLは文字列の比較のみを実行します。明らかに、'13' '13a'と等しくすることはできません 。
LIKE 句は常に文字列比較を実行します(オペランドのいずれかがNULLでない限り) 、この場合、結果はNULLになります。 。