isnull(exp1,exp2) 改为 ifnull(exp1,exp2)
charindex(substr,str) 改为 instr(str,substr)
datediff(day,date1,date2) 改为 TIMESTAMPDIFF(day,date1,date2)
遇到+号,有两种情况
数字相加,保持不变
字符串相加,用concat(a,b)
去掉dbo.
Exec fun para1,para2 改为 call fun(para1,para2)
sql语句末尾都要加 ‘;‘ 代码中大部分由于框架,可以不用加。
delete 语句必须加from
len(str) 改为 char_length(str)
cast(ori as type)
type 若为 int,改为 signed
type 若为 varchar,改为 char
type 若为 numbric,改为decimal
top1 改成末尾添加 limit 1
[字段别名/表别名] 去掉中括号换空格
convert方法
日期型 convert(varchar,date,112)改为date_format(date,'%Y%m%d')
日期型 convert(varchar,date,23)改为date_format(date,'%Y-%m-%d')
其他依情况而定
dateadd(month,1,date) 改为 DATE_ADD(date,INTERVAL 1 month)
mysql对大小写不敏感,所以例如inT函数,需要改成·inT·(按键1左边的符号)
isDate(str)=1 改为Date(str) is not null
TIMESTAMPDIFF,DATE_ADD,DATE_FORMAT下必须符合yyyymmdd等格式,不能只有yyyy
substring(str,0,length),第二参数为0时,改为substring(str,1,length-1);mysql没有sqlserver从0开始的效果。
UUID()和sqlserver 的NEWID()有很大不同
Mysql 的UUID(),每条记录虽然不同,但过于相似,所以不适合裁剪,使用部分
Sqlserver 的NEWID(),随机。
修改和删除语句时,Mysql不能有delete from A where A.xx in(select xx from A...)句式,不一定是in函数。就是说,修改本表的条件不能是本表的子查询。可通过嵌套一层跳过该机制。
select XX,* from TABLE 在sqlserver中支持,在mysql中需改为select XX,TABLE.* from TABLE。