MySQL层比较函数的调用方式
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"MySQL层比较函数的调用方式",在日常操作中,相信很多人在MySQL层比较函数的调用方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"MySQL层比
千家信息网最后更新 2025年01月23日MySQL层比较函数的调用方式
这篇文章主要介绍"MySQL层比较函数的调用方式",在日常操作中,相信很多人在MySQL层比较函数的调用方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"MySQL层比较函数的调用方式"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、问题来源
最近遇到一个日期比较的问题如下:
root@localhost:test:10:25:48>select from_unixtime(1596680255);+---------------------------+| from_unixtime(1596680255) |+---------------------------+| 2020-08-06 10:17:35 |+---------------------------+1 row in set (0.00 sec)root@localhost:test:10:25:52>select from_unixtime(1596680255,'%Y-%m-%d') < '2020-08-1';+----------------------------------------------------+| from_unixtime(1596680255,'%Y-%m-%d') < '2020-08-1' |+----------------------------------------------------+| 1 |+----------------------------------------------------+1 row in set (2.70 sec)root@localhost:test:10:25:59>select from_unixtime(1596680255) < '2020-08-1';+-----------------------------------------+| from_unixtime(1596680255) < '2020-08-1' |+-----------------------------------------+| 0 |+-----------------------------------------+1 row in set (2.36 sec)
按理来说from_unixtime(1596680255,'%Y-%m-%d') < '2020-08-1' 应该是false才对,但是返回为true,因此怀疑为字符串比较的方式
二、问题验证
首先关闭gtid通过create table as 来验证一下字段类型如下:
create table testit951asselect from_unixtime(1596678161,'%Y-%m-%d') as "tt"create table testit952asselect from_unixtime(1596678161) as "tt"
通过这种方式发现两种建表字段为varchar和datetime类型。通过源码验证可以看到如下:
Breakpoint 5, Arg_comparator::compare_string (this=0x7fffe40167c0) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/item_cmpfunc.cc:16721672 if ((res1= (*a)->val_str(&value1)))(gdb) cContinuing.Breakpoint 4, Arg_comparator::compare_datetime (this=0x7fffe40164c8) at /cdh/mysqldebug/percona-server-5.7.29-32/sql/item_cmpfunc.cc:15091509 THD *thd= current_thd;(gdb) cContinuing.
可以看到内部通过了string和datetime两种类型来比较。因此得到证明。最后留下比较函数的位置:
Item_cmpfunc.cc
到此,关于"MySQL层比较函数的调用方式"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方式
函数
问题
学习
类型
验证
字段
更多
帮助
实用
接下来
位置
字符
字符串
文章
方法
日期
来源
源码
理论
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江苏网络安全学会
关于小学网络安全教育的ppt
广东省网络安全应急
网络安全解说
石家庄网络安全培训机构实战教学
杭州软件开发培训学校
计算机网络技术融合
新时代软件开发费用
有什么分析股票的软件开发
6.2魔兽数据库
为什么要加网络安全锁
安徽森拓网络技术
计算机网络运维和网络安全哪个好
网络安全重点保障方案
软件开发的学多长时间
徐汇区智能化软件开发定制介绍
软件开发需要准备
数据库和库是一个意思吗
服务器电源二手的
腾讯云轻量服务器虚拟化
易学的网络技术
无尽的拉格朗日新服务器开服时间
包头市包东网络技术有限公司
计算机网络运维和网络安全哪个好
知网的英文数据库有哪些
陕西专业企业管理软件开发教程
曙光服务器节能认证证书
网络安全法云课堂
阿里云ecs服务器证书
ftp服务器共享