当前位置 : 主页 > 网络编程 > 其它编程 >

mysqlselect两个字段判断是否相等形如selecta=b

来源:互联网 收集:自由互联 发布时间:2023-07-02
背景今天看到一个mysql比较有意思的操作大概是这样的结构selectsubString(20221019180754,1,8)curdate 背景 今天看到一个mysql比较有意思的操作大概是这样的结构 select subString("20221019180754",1,8) cur
背景今天看到一个mysql比较有意思的操作大概是这样的结构selectsubString(20221019180754,1,8)curdate

背景

今天看到一个mysql比较有意思的操作大概是这样的结构 select subString("20221019180754",1,8) curdate() 0; 以前从来没见过这样的写法很好奇这是什么操作特地研究一下

分析步骤

1. 先讲上面的语句放到mysql里面执行一下看看会返回什么结果

在这里插入图片描述

返回了一个0

2. 执行步骤拆解

  • 执行select subString("20221019180754",1,8);返回了20221019 在这里插入图片描述

  • 执行select curdate();返回了2022-10-19 在这里插入图片描述

  • 执行select subString("20221019180754",1,8) curdate();返回了1 在这里插入图片描述

  • 思考那到底是相等返回1还是不相等返回1呢

    验证一下执行select subString("20991019180754",1,8) curdate();语句年份不一样返回的结果是0 在这里插入图片描述

    总结

    那也就是说当两边结果相等的时候会返回1不相等的时候返回0日期格式也会自动格式化为一致的类型对比。那回到最开始的题目上select subString("20221019180754",1,8) curdate() 0; 就是3个结果进行对比看看是不是3个结果都相等。我们已知select subString("20221019180754",1,8) curdate();的结果是1那select 1 0的结果就是0了一整个结果即为0。 这个语句的现实意义是对比数据库保存的日期与当前日志对比是否不相等。不相等返回1select 0 0返回1 ,相等返回0。

    上一篇:剑指offer和大于等于target的最短子数组
    下一篇:没有了
    网友评论