【MySQL系列】隐式转换

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一.现象背景
      • 1.SQL
      • 2.id 数据类型
      • 3.等价 SQL
    • 二.隐式转换场景
      • 1.字符串和数字混合比较
      • 2.字符串到数字的插入
      • 3.数字到字符串的插入
      • 4.函数参数
      • 5.ORDER BY 或 GROUP BY 子句
      • 6.CASE WHEN 语句
      • 7.JOIN 操作
      • 8.默认值

一.现象背景

1.SQL

select * from `app-cloud`.cl_sation where id = "082f660d-e1d3-4a36-bcd8-e8494f52e0eb";

2.id 数据类型

 `id` int NOT NULL AUTO_INCREMENT,

3.等价 SQL

select * from `app-cloud`.cl_sation where id = 082;

在这里插入图片描述

二.隐式转换场景

在 MySQL 中,隐式类型转换通常发生在以下几种场景:

1.字符串和数字混合比较

字符串和数字混合比较:当你试图将字符串与数字进行比较时,MySQL 会尝试将字符串转换为数字。例如:

SELECT * FROM table WHERE column = '123';

如果column是一个数字类型,MySQL 会尝试将字符串'123'转换为数字 123。

2.字符串到数字的插入

字符串到数字的插入:当你尝试将字符串插入到一个数字类型的列时,MySQL 会尝试将字符串转换为相应的数字类型。

INSERT INTO table (column) VALUES ('456');

如果column是一个数字类型,MySQL 会将字符串'456'转换为数字 456。

3.数字到字符串的插入

数字到字符串的插入:相反,如果你尝试将数字插入到一个字符串类型的列中,MySQL 也会进行隐式转换。

INSERT INTO table (column) VALUES (789);

如果column是一个字符串类型,MySQL 会将数字 789 转换为字符串'789'

4.函数参数

函数参数:在调用某些函数时,如果参数的数据类型与函数期望的类型不匹配,MySQL 可能会尝试进行隐式转换。

SELECT DATE_ADD('2021-01-01', INTERVAL '1' DAY);

在这个例子中,INTERVAL期望数字类型的参数,但提供了字符串,MySQL 会尝试将其转换为数字。

5.ORDER BY 或 GROUP BY 子句

ORDER BY 或 GROUP BY 子句:在使用ORDER BYGROUP BY子句时,如果列的类型与排序/分组表达式中的类型不匹配,MySQL 可能会进行隐式转换。

SELECT column FROM table ORDER BY 'column';

如果column是字符串类型,而排序表达式是字符串字面量,MySQL 会尝试将列值转换为字符串进行排序。

6.CASE WHEN 语句

CASE WHEN 语句:在使用CASE WHEN语句时,如果条件表达式的数据类型与比较值的数据类型不匹配,MySQL 会尝试进行隐式转换。

SELECT column FROM table WHERE column = CASE WHEN condition THEN 'value' ELSE 0 END;

7.JOIN 操作

JOIN 操作:在执行 JOIN 操作时,如果连接条件中的列数据类型不匹配,MySQL 可能会尝试进行隐式转换以满足条件。

8.默认值

默认值:当列的默认值是字符串,而插入数据时没有提供该列的值,MySQL 会尝试将字符串默认值转换为列的数据类型。
在这里插入图片描述

隐式类型转换是 MySQL 提供的一种灵活性,允许在不同数据类型之间进行操作,但这也可能导致不可预见的结果,特别是当转换不是按照预期进行时。因此,了解和控制数据类型的转换对于编写可靠和高效的 SQL 查询非常重要。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/369129.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java的壁纸网站设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

【linux高级IO(一)】理解五种IO模型

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux高级IO 1. 前言2. 重谈对…

Redis基础教程(六):redis 哈希(Hash)

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

Windows 安装hadoop 3.4

目录 安装 下载 设置环境变量 配置 修改:hadoop-env.cmd 修改:core-sit.xml 修改:hdfs-site.xml 修改:mapred-site.xml 修改:yarn-site.xml 运行 格式化HDFS文件系统 启动:hadoop 启动&#xf…

CTF常用sql注入(二)报错注入(普通以及双查询)

0x05 报错注入 适用于页面无正常回显,但是有报错,那么就可以使用报错注入 基础函数 floor() 向下取整函数 返回小于或等于传入参数的最大整数。换句话说,它将数字向下取整到最接近的整数值。 示例: floor(3.7) 返回 3 floor(-2…

统计信号处理基础 习题解答11-12

题目 证明 的MAP估计量为 其中是一个的矢量, 是一个可逆的p*p的矩阵。也就是说,MAP估计量对可逆的线性变换是可以变换的。 解答 已知的联合概率密度 且: 现在知道: 那么为了获得变换后的MAP,首先需要根据求出 根据概率密度变换…

Linux系统部署MongoDB开源文档型数据库并实现无公网IP远程访问

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 💡 推荐 前些天发现了一个巨牛的人工智能学习网站&am…

Springboot与xxl-job

一、下载xxl-job项目 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 从GitHub上面将项目clone下来,如果网络问题导致速度慢也可以从Gitee上面拉…

企业搭建知识库:解锁无限潜力的钥匙

在当今这个信息爆炸的时代,企业如何高效地管理、传播与利用知识,已成为衡量其竞争力的重要标尺。知识库,作为这一背景下的产物,正逐步成为企业不可或缺的数字资产。它不仅是一个自助式的数字门户,更是连接员工、客户与…

stm32定时器与pwm波

文章目录 4 TIM4.1 SysTick系统定时器4.2 TIM定时器中断与微秒级延时4.3 TIM使用PWM波4.3.1 PWM介绍4.3.2 无源蜂鸣器实现 4.4 TIM ,PWM常用函数 4 TIM 4.1 SysTick系统定时器 ​ Systick系统滴答,(同时他有属于自己的中断,可以利用它来做看…

RT-Thread Studio与CubeMX联合编程之rtthread stm32h743的使用(十一)spi设备SFUD驱动的使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图: 1.建立新工程,选择相应的芯片型号及debug引脚及调试器 2.编译下载,可以看到串口打印正常 3.…

Solo 开发者周刊 (第12期):连接独立开发者,共享开源智慧

这里会整合 Solo 社区每周推广内容、产品模块或活动投稿,每周五发布。在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解。本杂志开源,欢迎投稿。 产品推荐 1、Soju————一个现代的书签…

完全理解C语言函数

文章目录 1.函数是什么2.C语言中的函数分类2.1 库函数2.1.1 如何使用库函数 2.2自定义函数 3.函数的参数3.1 实际参数(实参)3.2 形式参数(形参) 4.函数调用4.1传值调用4.2 传址调用4.3 练习 5.函数的嵌套调用和链式访问5.1 嵌套调…

Django + Vue 实现图片上传功能的全流程配置与详细操作指南

文章目录 前言图片上传步骤1. urls 配置2. settings 配置3. models 配置4. 安装Pillow 前言 在现代Web应用中,图片上传是一个常见且重要的功能。Django作为强大的Python Web框架,结合Vue.js这样的现代前端框架,能够高效地实现这一功能。本文将…

DolphinDB 蝉联 Gartner 中国实时数据管理代表厂商

报!DolphinDB 又上榜啦!!! 上月,全球知名信息技术研究公司 Gartner 发布了 Hype Cycle for Data, Analytics and AI in China, 2024 报告,以技术成熟度曲线(Hype Cycle)和优先级矩阵…

JVM的五大内存区域

JVM的五大内存区域 JVM内存区域最粗略的划分可以分为 堆 和 栈 ,当然,按照虚拟机规范,可以划分为以下几个区域: JVM内存分为线程独享区和线程共享区, 其中 方法区 和 堆 是线程共享区, 虚拟机栈, 本地方法…

HTMLCSS(入门)

HTML <html> <head><title>第一个页面</title></head><body>键盘敲烂&#xff0c;工资过万</body> </html> <!DOCTYPE>文档类型声明&#xff0c;告诉浏览器使用哪种HTML版本显示网页 <!DOCTYPE html>当前页面采取…

云桌面运维工程师

一 深信服驻场工程师 1 深信服AC、AF、AD、NGAF、WOC Atrust、WAF项目实施经验者优先考虑。 负责云桌面POC测试 部署和配置&#xff1a;设置云桌面基础设施&#xff0c;包括虚拟化平台、云桌面管理软件和相关组件。确保正确配置网络、存储和安全设置。 用户体验&#xff1…

k8s离线安装安装skywalking9.4

目录 概述资源下载Skywalking功能介绍成果速览实践rbacoapoap-svcuiui-svc 结束 概述 k8s 离线安装安装 skywalking9.4 版本&#xff0c;环境&#xff1a;k8s版本为&#xff1a;1.27.x 、spring boot 2.7.x spring cloud &#xff1a;2021.0.5 、spring.cloud.alibab&#xff1…

滚动表格(vue版本)【已验证可正常运行】

演示图 注&#xff1a;以下代码来自于GPT4o&#xff1a;国内官方直连GPT4o 代码 <template><div><div class"alarmList-child" ref"alarmList" mouseenter.stop"autoRoll(1)" mouseleave.stop"autoRoll()"><div…