10

MySQL は自動的に文字列を数値に変換しますか?
その変換はどのように機能しますか?

  • '1234'=1234?
  • '1abc' = 1 ?
  • 「テキスト」= 1 ?

これがbigintunits.id型の場合、このクエリはどのように解釈されるでしょうか?

SELECT table.* 
FROM table 
WHERE id='text'
4

3 に答える 3

11

最初の 3 つの質問に対する答えは、はい、はい、いいえです。

文字列'text'が数値に変換されると、値になります0

型変換について説明しているドキュメントはこちらです。

クエリの場合:

SELECT table.* 
FROM table 
WHERE id='text';

ルールは、ドキュメントからのこの抜粋によってキャプチャされます。

それ以外の場合はすべて、引数は浮動小数点数 (実数) として比較されます。

つまり、これは実際には次と同等です。

WHERE id = 0.0
于 2014-02-13T18:29:30.447 に答える