mssql和mysql项目转型遇到的所有区别,多年积累的经典!
来源:互联网 发布:梅西 过人 知乎 编辑:程序博客网 时间:2024/04/27 22:29
1.mysql自定义函数
A.show variables like '%func%';查看是否开启了,如果结果为off,则开启:
set global log_bin_trust_function_creators=1;
B.命名最好有前缀,不然很容易
a.mysql普通变量名没有mssql的@符号
b.mysql用concat连接字符串,mssql用+号
c.创建的时候mssql里begin前面的as在mysql里面就丢掉吧
d.select查询结果集赋值:
mssql是select @a=a,@b=b from tablename;
mysql是select a,b into a,b from tablename;a,b默认就给解析为变量了
e.mysql每句话都要加分号 ;很贱的哦
f.mssql注释语句可以随便加哪里例如--这是注释,但是mysql注释只能--这是注释,--后面必须有个空格才能写中文
g:系统内置函数
cast和convert:只能手工翻译重写啊 mssql中cast(*** as varchar),convert(varchar,***),as后面的参数不能再用varchar,int这些了,要用以下这些值:
- 二进制,同带binary前缀的效果 : BINARY
- 字符型,可带参数 : CHAR()
- 日期 : DATE
- 时间: TIME
- 日期时间型 : DATETIME
- 浮点数 : DECIMAL
- 整数 : SIGNED
- 无符号整数 : UNSIGNED
给结果集赋值并累计结果值(declare res='';select res=concat(res,usernmae) from users),mysql不支持在自定义函数,只能写在存储过程里面
h:mysql中没有表变量这一概念,只有临时表,详解看这里http://www.cnblogs.com/jinzhenshui/archive/2009/06/14/1503123.html
i:mssql中select @str=@str+username from users;等同于select group_concat(username) as col into str from users;,group_concat详细http://blog.csdn.net/lifuxiangcaohui/article/details/6132147
j:创建临时表语句也不同
mssql 只要在表名前面加#就可以了,mysql要声明temporary,并且自增和主键写法也不同
create temporary table fun_table_forty_more(table_forty_more_id int auto_increment,id int,num int,primary key(table_forty_more_id)) ;自定义函数和促发器不能使用这样的事务类语句drop table if exists fun_table_temp;
k:mysql中if语句只有后面end if要分号,其他都不要
if fun_records = 0 -- 无分号then -- 无分号set fun_records = 150;-- 有分号<pre name="code" class="sql"> set fun_records = 150;
end if;
h:语句中变量like concat('%',fun_classname,'%');like可以后面concat变量,limit等等就不行,要用动态执行的形式了
i: funsql是sql结果变量,动态执行语句如下
set @pre_funsql=fun_sql; PREPARE execsql from @pre_funsql; EXECUTE execsql; DEALLOCATE PREPARE execsql;
j:order by charindex不一样,参照http://blog.csdn.net/wendi_0506/article/details/38872731
k:MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误
比如这样的语句是不能正确执行的。 select * from table where id in (select id from table limit 12); 但是,只要你再加一层就行。如: select * from table where id in (select t.id from (select * from table limit 12)as t) 这样就可以绕开limit子查询的问题。 问题解决。l:declare必须声明在最上面,不然语法报错
- mssql和mysql项目转型遇到的所有区别,多年积累的经典!
- mssql到mysql项目的转型完美解决方案剖析
- mssql和mysql的区别
- mysql与mssql的区别
- mysql 与 mssql 的区别
- mssql 导 mysql 遇到的问题
- 多年的积累,一日的奉献
- MSSQL,MYSQL和POSTGRES数据库的一些区别
- PHP 中 MySQL 查询和 MSSQL 查询的区别
- mssql和mysql区别
- mssql和mysql区别
- mssql和mysql区别
- mssql和mysql区别
- 多年积累的20条编程经验
- 多年积累的20条编程经验
- 多年积累的20条编程经验
- 多年积累的20条编程经验
- 项目中遇到的单词.句子.积累
- php 分页类
- 百叶窗
- Android 删除SD卡文件和文件及创建文件夹和文件
- ios 绘制曲线走势图
- int strncmp (const char *s1, const char *s2, size_t size) 函数 说明
- mssql和mysql项目转型遇到的所有区别,多年积累的经典!
- Cygwin的安装,卸载,以及安装gdb
- C#中的interface没那么简单
- FCKeditor xhEditor
- [Coursera][Stanford] Machine Learning Week 5
- 必须保持订购
- 图 深度优先搜索(DFS)、广度优先搜索(BFS)
- 【HDU】1598 find the most comfortable road 最短路
- IOS SWIFT 设置图片圆形