Oracle MySQL
一,日期转换
to_date() date_format或者str_to_date
二,函数转换
//判断是否为空,如果是null,返回exp3,否则返回exp2
nvl(exp1,exp2)/nvl2(exp1,exp2,exp3) IF(exp1 is null,exp3,exp2)/ifnull(exp1,exp2)
三,语法转换
//关于rownum
rownum 是oracle中特有的,在mysql中需要替换成limit a,b.而且,需要注意的是,在mysql中select 一个表时,这个表后面要加别名,不然会报错
还有一注意点,在转换rownum<=1时,即取第一条记录时,需要嵌套查询,否则结果不正确,如下:
oracle中的原语句:select count(1) from TB_TTP_WEB_ROLE t WHERE t.m_id=#m_id# and rownum<=1;
mysql中修改后的语句如下:
SELECT COUNT(1) FROM (SELECT * FROM TB_TTP_WEB_ROLE t WHERE t.m_id=#m_id# LIMIT 0,1) tt
//关于转义字符
在oracle 中,使用的是'\',而在mysql中,使用的是'/'
//关于模糊查询的字符串拼接
oracle中是这样的
T.USERNAME LIKE '%' || REPLACE(REPLACE('aa','%', '\%'), '_', '\_') || '%' ESCAPE '\'
mysql是这样的
T.USERNAME LIKE CONCAT('%',REPLACE(REPLACE('aa','%', '/%'), '_', '/_'),'%') ESCAPE '/'
一,日期转换
to_date() date_format或者str_to_date
二,函数转换
//判断是否为空,如果是null,返回exp3,否则返回exp2
nvl(exp1,exp2)/nvl2(exp1,exp2,exp3) IF(exp1 is null,exp3,exp2)/ifnull(exp1,exp2)
三,语法转换
//关于rownum
rownum 是oracle中特有的,在mysql中需要替换成limit a,b.而且,需要注意的是,在mysql中select 一个表时,这个表后面要加别名,不然会报错
还有一注意点,在转换rownum<=1时,即取第一条记录时,需要嵌套查询,否则结果不正确,如下:
oracle中的原语句:select count(1) from TB_TTP_WEB_ROLE t WHERE t.m_id=#m_id# and rownum<=1;
mysql中修改后的语句如下:
SELECT COUNT(1) FROM (SELECT * FROM TB_TTP_WEB_ROLE t WHERE t.m_id=#m_id# LIMIT 0,1) tt
//关于转义字符
在oracle 中,使用的是'\',而在mysql中,使用的是'/'
//关于模糊查询的字符串拼接
oracle中是这样的
T.USERNAME LIKE '%' || REPLACE(REPLACE('aa','%', '\%'), '_', '\_') || '%' ESCAPE '\'
mysql是这样的
T.USERNAME LIKE CONCAT('%',REPLACE(REPLACE('aa','%', '/%'), '_', '/_'),'%') ESCAPE '/'