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