当我运行此查询时,为什么我的数字等于varchar
?
select 1='sk', 1=1, 1='1sk', 0='sk', 9='9sk', 90='90ss' from dual
如何禁用此行为?
答案 0 :(得分:3)
在这种情况下,MySql获取字符串中的前导数字并将它们转换为数字,并忽略从命中不是数字的字符开始的所有内容。
相反,您可以明确地将数字转换为字符串:
MariaDB [db]> SELECT 1='1sk', CAST(1 AS CHAR)='1sk';
+---------+-----------------------+
| 1='1sk' | CAST(1 AS CHAR)='1sk' |
+---------+-----------------------+
| 1 | 0 |
+---------+-----------------------+
1 row in set, 1 warning (0.00 sec)