项目兼容oracle与MySQL数据库 oracle mapper.xml 改成 mysql mapper.xml

本文详细介绍了如何将Oracle数据库中的SQL语句和函数转换为MySQL兼容的形式,包括Like模糊查询的字符串拼接、分页查询、时间函数、NVL/DECODE函数、SUBSTR/TO_NUMBER函数以及MERGE INTO操作的转换。同时,讨论了Oracle中的IS NOT NULL与MySQL中的区别,并提供了数据类型对照表,帮助进行数据库迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Like模糊查询有字符串拼接

所有用 str1||str2 拼接的字符串都要改成CONCAT(str1,str2)
'%'||#{zbmc}||'%'改成CONCAT('%',#{zbmc},'%')
a.fpdm||'-'||a.fphm 改成CONCAT(a.fpdm,'-',a.fphm)

Oracle中concat与||区别(以及与mysql中concat函数区别)

2. 分页查询

oracle中的ROWNUM

SELECT * FROM (SELECT ROWNUM rn,a.* from (  SELECT
		A.* from FX_PZ A
) a where ROWNUM<=#{endRow} ) WHERE rn>#{startRow} order by ${sort} ${order}

改成

SELECT A.* from FX_PZ A
order by ${sort} ${order} limit #{startRow},#{rows}

注意limt关键字是最后才用到的。以下条件的出现顺序一般是:where->group by->having-order by->limit

Oracle与Mysql的分页比较
MySQL的Limit详解

3.Oracle中to_date/to_char函数改成MySql中的函数

to_date(#{kprqs},'yyyy-MM-dd')改成 str_to_date(#{kprqs},'%Y-%m-%d')
to_char(kprq,'yyyy-MM')改成date_format(kprq,'%Y-%m')
to_char(kprq,'q')改成 FLOOR((date_format(kprq, '%m')+2)/3))

2020-06-03补充
SqlServer时间格式化

 Select CONVERT(varchar(10), GETDATE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值