字节跳动 计算机视觉技术 端口映射 多进程 typora css listview elasticsearch cmake vue网站模板 android常用布局 ab软启动器 java解析json数组 css鼠标悬浮样式 mysql重启 普通话网上报名 python生成多个随机数 python配置环境 python读取本地文件 java入门 java求阶乘 蓝牙运动耳机排行榜 maxtoc4d 无限弹窗bat 地下城怎么双开 ram容量是什么意思 电子商城系统 什么软件买电影票便宜 adobe卸载工具 桌面数字时钟 js递归函数 ps高手教程 dota2控制台 Mapper 打印机怎么打印照片 繁简体 加字幕软件 数据库同步解决方案 maya骨骼绑定 dh浩劫天赋
当前位置: 首页 > 学习教程  > 编程语言

mysql string到int的隐式类型转换的坑

2021/1/22 23:09:21 文章标签:

首先写个问题: CREATE TABLE IF NOT EXISTS tbl (id int(11) unsigned NOT NULL AUTO_INCREMENT,process_id varchar(64) NOT NULL DEFAULT ,PRIMARY KEY (id) )ENGINE InnoDBDEFAULT CHARSET utf8;然后执行:se…

首先写个问题:

CREATE TABLE IF NOT EXISTS `tbl` (
  `id`                     int(11) unsigned NOT NULL AUTO_INCREMENT,
  `process_id`             varchar(64)      NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
)
  ENGINE = InnoDB
  DEFAULT CHARSET = utf8;
 

然后执行:select * from tbl where id = ‘8d11f9f1-5cba-11eb-a760-1a367a3457cf’ ,你觉得会得到什么结果?

结果是可能会返回数据哦。

原因就是mysql的隐式类型转换

  • 若字符串是以数字开头,且全部都是数字,则转换为数字结果是整个字符串;部分是数字,则转换为数字结果是截止到第一个不是数字的字符为止

可能会误用的场景:

  1. 通过mybatis-generator 工具生成对应实体类和mapper时,由于自动户工具的帮助,可能就不在意列的一些类型。可能会导致一些查询时出现意料之外的情况

本文链接: http://www.dtmao.cc/news_show_630877.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?