[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
1、批量保存
* MySQL
批量插入的两种方式:
其一,循环插入,与MySQL无区别。
insert into table(id,name) values(1,'A’); insert into table(id,name)
values(2,’B’);
其二,批量插入
insert into table(id,name) values(1,’A’),(2,'B')
* Oracle
批量插入的两种方式:
其一,循环插入,与MySQL无区别。
insert into table(id,name) values(1,'A’); insert into table(id,name)
values(2,’B’);
其二,批量插入(无values 关键字)
insert into table(id,name) select * from ( select 1,'A' from dual union all
select 2,'B' from dual )
注意:
批量插入注意定义别名,否则可能会提示不能明确定义的列
insert into table(id,name) <foreach collection="list" item="i"
separator="union all" open="select * from (" close=")"> select #{i.id}
id,#{i.name} name from dual </foreach>
2、ifnull( a, b ) 变成了 nvl( a, b )
mysql的ifnull与之对应的 oracle 相应的函数 nvl。
具体的用法同 ifnull 差别不大写法:
select nvl( column, '代替字段或者值' )
3、限定返回结果集的行数
在mysql中,可以通过limit限制返回结果集的行数,如:
select * from u_table limit 2;
返回了u_table的前两行,在oracle中没有limit,如果oracle要得到同样的结果,则:
select * from u_table where rownum < 3;
这里rownum是内置关键字,表示结果集的行号,但是不能对rownum进行复合条件判断,如果要返回第11行至第20行10条数据:
#错误写法: select * from u_table where rownum > 10 and rownum < 21;
#而是应该写成结果集相减的形式: select * from u_table where rownum < 21 minus select * from
u_tablewhere rownum < 11;
4、union all不能与order by一起同级用
union all和order by一起使用时,会报错,可以使用临时表的方式解决该问题。
#不同排序字段 select * from (查询1) union all select * from (查询2) 或 #相同排序字段 select *
from(查询1 union all 查询2) order by xx;
发现一个,记录一个!未完待续。。。