0

equal operator について、MySQLの奇妙な動作を発見しました。

私のテーブルの例では、id = 914 の行があります。次のリクエストを実行すると:

select * from example where id='914z';

MySQL は id = 914 の行を返します。

どうして??? つまり... '914' は '914z' ではありません! これは完全に正常ではないと思います。そうでない場合は、理由を教えてください。喜んで話し合います。

4

1 に答える 1

1

本来どおりに機能し、動作は文書化されています。ドキュメントには良い例があります:

次の例は、比較操作のために文字列を数値に変換する方法を示しています。

mysql> SELECT 1 > '6x'; -> 0
mysql> SELECT 7 > '6x'; -> 1
mysql> SELECT 0 > 'x6'; -> 0
mysql> SELECT 0 = 'x6'; -> 1
于 2013-05-24T11:41:31.783 に答える