我有一张table:
CREATE TABLE `test` (
`t` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
表中数据为:
mysql> select * from test;
+----------------------+
| t |
+----------------------+
| 12511023900355495873 |
| 12511023900355495872 |
| 12511023900355495874 |
+----------------------+
当我 select
从下面的表格中:
select * from test where t = 12511023900355495873;
结果是:
+----------------------+
| t |
+----------------------+
| 12511023900355495873 |
| 12511023900355495872 |
| 12511023900355495874 |
+----------------------+
当我使用 number
选择一个 varchar
列?
1条答案
按热度按时间carvr3hs1#
手册页https://dev.mysql.com/doc/refman/5.7/en/type-conversion.html 在所有其他情况下,参数作为浮点数(实数)进行比较。
所以
结果
请注意,t1列中的所有浮点值都是相同的。
不用说,你应该避免类型转换。