mysql转换类型、类型转换、查询结果类型转换
一、问题来源
数据库一张表的主键id设为了自增,那就是int型的,但是其他表的关联字段又设置成了字符串!
而且已经开发了很久才发现问题,既然出现了问题肯定需要解决
如图
很明显id是不一样的,花了点时间查找相关资料
mysql的查询机制 ,当两边的类型不一致时会有隐式转型(当然这个是不靠谱的),会自动从左往右第一个字母开始转为0相加,
于是这条sql就变成了
select * from tb_line_new WHERE id = 9+0+0+0+0+0、、、、、;
二、网上很多人指出了问题 ,但是没有给出解决方案,这很可耻,也很浪费别人的时间,特别鄙视那些、、、、、、
mysql存在两个转型的函数
CAST(字段名 as 需要转换的类型 )
CONVERT(字段名,需要转换的类型)。
支持转型的类型:
二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR() 日期 : DATE 时间: TIME 日期时间型 : DATETIME 浮点数 : DECIMAL 整数 : SIGNED 无符号整数 : UNSIGNED
再次查询结果正常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2016-05-11 【转载】Fragment 全解析(1):那些年踩过的坑
2015-05-11 Microsoft office word关闭英文输入首字母大写设置
2015-05-11 屏幕录制:SCR Screen Recorder Pro v0.14.3汉化破解版
2015-05-11 Adatper中获取宽高为0的问题