人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLで、数字をスラッシュで区切った文字列なのですが、

SELECT '123/456' = 123

これの結果が 「1」になるのは何故でしょうか。
SELECT '123/456' = '123'
ですと「0」が返るところをみると、'123/456'が何かの数字とみなされている気がするのですが、一体何とみなされているのでしょうか。

よろしくお願いします。

●質問者: mosssara
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

マニュアルでいうとこちら。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.2 式評価での型変換

ルール的には、

ほかのすべてのケースでは、引数は浮動小数点 (実) 数として比較されます。

に、はまってるはずです。

マニュアルに記載されている場所が見つけられないのですが、文字列を数値に変換するときには、先頭(左端)から変換できるところまでが解釈されるようです。
文字列 '123/456' を浮動小数点に変換するとこうなります。

mysql> select cast('123/456' as double);
+---------------------------+
| cast('123/456' as double) |
+---------------------------+
| 123 |
+---------------------------+
1 row in set, 1 warning (0.00 sec)
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ