一,保留表中部分数据
表如下:
1.删除表中前100条数据:DELETE FROM update_record LIMIT 100
2.保留表中最新十条数据:DELETE ur FROM update_record ur,(SELECT update_time FROM update_record ORDER BY update_time DESC LIMIT 9,1)time WHERE ur.update_time <time.update_time
3.保留表中前100条数据:删除来自tbl_user WHERE NAME NOT IN(SELECT t.NAME FROM(SELECT name来自tbl_user LIMIT 100)t)
这里有个小别扭本来一开始写的是删除来自tbl_user姓名在哪里(从tbl_user限制100中选择名称)但是不支持来自后面有限所以要绕过一下
二,批量录入
1.无则插入有则更新:“插入到tbl_user(UID,LOGIN_NAME,姓名,移动,备注,状态,CREATE_TIME,lastversion)值(#{UID},{#}登录名,#{用户名},{#mobilephone },#{position},1,now())DUPLICATE KEY UPDATE上的“+”uid =#{uid},login_name =#{loginname},name =#{username},mobile =#{mobilephone},备注=#{位置}
这里如果是pgsql“on DUPLICATE KEY”换成“on config(uid)do”括号内是表的主键字段
三、查询
1.集合多个条件,一次查询
select
ifnull(one, 0 )
ifnull(two, 0 )
ifnull(three, 0 )
ifnull(four, 0 )
where 条件
四、错误
关于sql_mode = only_full.......
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';(一次会话)
有错指正无错点赞未完待续......