MySQL隐式转换的坑

MySQL以以下规则描述比较操作如何进行转换:

MySQL隐式转换的坑

两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用

实际使用中经研究发现字符串和数字比较时,优先把字符串转换为数字,当字符串不能转换为数字时,取前缀数字转换,没有前缀数字则是0

举例说明,数据如下表user

MySQL隐式转换的坑

注意一个安全问题:假如 password 类型为字符串,查询条件为 int 0 则会匹配上。

MySQL隐式转换的坑

MySQL隐式转换的坑

由于 MySQL 隐式类型转换规则比较复杂,依赖 MySQL 隐式转换很容易出现各种想像不到的问题,
而且 MySQL 隐式类型转换本身也是非常耗费 MySQL 服务器性能的,所以非常不推荐这样使用。

MySQL隐式转换的坑

MySQL隐式转换的坑

MySQL隐式转换的坑

注:翻译为chrome自带翻译

Original: https://www.cnblogs.com/klarck/p/13427299.html
Author: 一剑破万法
Title: MySQL隐式转换的坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591694/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球