equal operator について、MySQLの奇妙な動作を発見しました。
私のテーブルの例では、id = 914 の行があります。次のリクエストを実行すると:
select * from example where id='914z';
MySQL は id = 914 の行を返します。
どうして??? つまり... '914' は '914z' ではありません! これは完全に正常ではないと思います。そうでない場合は、理由を教えてください。喜んで話し合います。
equal operator について、MySQLの奇妙な動作を発見しました。
私のテーブルの例では、id = 914 の行があります。次のリクエストを実行すると:
select * from example where id='914z';
MySQL は id = 914 の行を返します。
どうして??? つまり... '914' は '914z' ではありません! これは完全に正常ではないと思います。そうでない場合は、理由を教えてください。喜んで話し合います。
本来どおりに機能し、動作は文書化されています。ドキュメントには良い例があります:
次の例は、比較操作のために文字列を数値に変換する方法を示しています。
mysql> SELECT 1 > '6x'; -> 0 mysql> SELECT 7 > '6x'; -> 1 mysql> SELECT 0 > 'x6'; -> 0 mysql> SELECT 0 = 'x6'; -> 1