专栏首页Nicky's blogMysql学习笔记整理手册

Mysql学习笔记整理手册

继上一篇博客《Oracle学习笔记整理手册》之后,我再写一篇Mysql版本的

PS:本博客收录自己工作中遇到学到的一些mysql技能,有时间就更新整理一下

(1) str_to_date

oracle有to_date函数,Mysql的格式是str_to_date(‘2019-02-12 11:34:32’, ‘%Y-%m-%d %H:%i:%s’)

(2) 递归查询

oracle实现递归查询的话,就可以使用start with … connect by,mysql并没有通过类似函数,解决方法是通过自定义函数的方法,具体可以参考我这篇博客 https://cloud.tencent.com/developer/article/1398051

(3) 排序问题

oracle做数据排序的时候,有时候可以用nulls first或者nulls last将null值排在最前或者最后。 不过迁到Mysql的话,mysql并没有提供类似函数,所以要怎么实现?下面给出解决方法: null值排在最后,用Mysql的IF和ISNULL函数。如果为空返回1,否返回0

select * from A order by IF(ISNULL(a),1,0),a desc 1 null值排在最前,用Mysql的IF和ISNULL函数。如果为空返回0,否返回1

select * from A order by IF(ISNULL(a),0,1),a desc 1 具体可以参考我写的这篇博客:https://cloud.tencent.com/developer/article/1398048

(4) 条件函数

条件函数比如case…when在mysql、Oracle都是有的,除了case…when这最基本之外,Oracle有nvl、nvl2和decode函数,Mysql没有提供类似decode的函数,不过有类似Oracle的nvl和nvl2函数。

Oracle 介绍一下oracle的nvl函数和nvl2函数。

nvl函数 nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。

nvl2函数 nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。 nvl函数具体可以参考我这篇博客:https://cloud.tencent.com/developer/article/1384472

Mysql

上面是Oracle的做法,mysql的做法可以用IFNULL(E1,E2)函数,其功能类似与Oracle的nvl函数。意思是E1为null就返回E2,不为null就返回E1。

Mysql IF函数,这里可以和Oracle的nvl2函数做对比,不过差别比较大了,nvl2函数是针对数值为空的情况,IF函数是针对自定义条件的

格式:IF(Condition,A,B) 意义:当Condition为TRUE时,返回A;当Condition为FALSE时,返回B。

(5) 列转行函数

Oracle列转行函数可以用vm_comcat函数,mysql的用concat_ws函数 使用方法: CONCAT_WS(separator,str1,str2,…) eg:

select concat_ws(',','11','22','33');

Oracle列转行函数的可以参考我以前博客:https://cloud.tencent.com/developer/article/1384366

列转行函数不兼容问题: https://cloud.tencent.com/developer/article/1384368

(6) find_int_set

Mysql有提供一个find_int_set函数,其语法为FIND_IN_SET(str,strlist)

  • str: 要查询的字符串
  • strlist: 序列,用逗号分隔,比如(1,2,3)

这个函数只要用于查询的时候,查询字符串是否在strlist序列里,like查询只是广泛的模糊匹配

(7) 类型转换函数

mysql的类型转换函数为cast(字段 as 类型), mysql支持的类型有

  • CHAR[(N)] 字符型
  • DATE 日期型
  • DATETIME 日期和时间型
  • DECIMAL float型
  • SIGNED int
  • TIME 时间型

(8) 合并更新

Oracle实现merge into实现,意思是数据表已经有数据就更新,没数据就新增 mysql的函数是replace into,语法

    replace into 表格(字段,...) values(数据,...)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle的nvl函数和nvl2函数

    nvl函数 nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。

    SmileNicky
  • Oracle和Mysql语法异同整理笔记

    最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行改造。

    SmileNicky
  • 电商门户网站商品品类多级联动SpringBoot+Thymeleaf实现

    在淘宝、京东等电商网站,其门户网站都有一个商品品类的多级联动,鼠标移动,就显示,因为前端不是我做的,所以不说明前端实现,只介绍后端实现。

    SmileNicky
  • python函数

    今天我们来学习一下python函数。 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。Python内置了很多有用的函数,我们可以直接调用.

    老雷PHP全栈开发
  • 【玩转腾讯云】万物皆可Serverless之关于云函数冷热启动那些事儿

    然后我们再来看一下腾讯云云函数文档里的简介 https://cloud.tencent.com/document/product/583/9199

    乂乂又又
  • 深入理解 JavaScript 回调函数 [每日前端夜话0xDF]

    JavaScript 回调函数是成为一名成功的 JavaScript 开发人员必须要了解的一个重要概念。但是我相信,在阅读本文之后,你将能够克服以前使用回调方法...

    疯狂的技术宅
  • python笔记:#012#函数

    函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,...

    _gongluck
  • 从零开始深度学习(十):激活函数

    文章首发于本人CSDN账号:https://blog.csdn.net/tefuirnever

    我是管小亮
  • python笔记:#012#函数

    gongluck
  • 快速学习ES6新特性-函数优化

    cwl_java

扫码关注云+社区

领取腾讯云代金券