最近在做一个项目的数据库由oracle转为mysql,其中碰到一些问题,总结如下:
函数,操作方式 | oracle | mysql |
---|---|---|
日期转String | TO_CHAR(SYSDATE,'YYYY-MM-DD hh24:mi:ss') | DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') |
String转日期 | to_date(date,'yyyy-mm-dd hh24:mi:ss') | str_to_date(date,’%Y-%m-%d %H:%i:%s’) |
nvl函数 | NVL(A.USER_KPI,0) | ifnull(A.USER_KPI,0) |
to_number | 有 | 无 |
拼接函数:查询到某一列的合并数据并且要求不能相同 | wm_concat() | group_concat() |
替换 | regexp_replace('AAA',正则,'aaa') | repalce('AAA',正则,'aaa') |
字符串拼接 | name||age | concat(name,age)或CONCAT_WS(’’,name,age) |
rownum | rownum=1 | limit 1 |
mysql 获取blob类型的值 | SELECT CONVERT(RSA_PUBLIC_KEY USING utf8) FROM `t_payment_method_extra_alipay` | |
字符串格式化 | TO_CHAR | CONCAT |
rownumber分组 | row_number() over(partition by col1 ) | select @r:=@r+1 as row_num , a.* from my_tb a ,(select @r:=0) b |
rownumber排序 | row_number() over(ORDER BY col2 ASC ) | SELECT @rowno:=@rowno+1 as rowno,r.* from t_article r,(select @rowno:=0) t |