删除/更新相同的记录的前n条
delete/update from table where condition limit n;插入时存在则替换
replace into t values(a);replace:先根据主键或唯一索引删除旧的,再插入新的。
一次插入多条记录
INSERT INTO `student` (`id`, `name`, `subject`, `score`) VALUES(1, '小明', '英文', 80),
(2, '小明', '数学', 79),
...
(9, '小红', '语文', 81);
不存在则插入,存在则不插入
INSERT INTO ta (NAME ,age) SELECT 'phl2',18 FROM DUAL WHERE NOT EXISTS (SELECT NAME FROM ta WHERE NAME ='phl2')带条件的count
统计sub_type='REFUND_FEE’ 的记录数:方法一.select count(sub_type) from t where t.sub_type='REFUND_FEE’;
方法二.select sum(if( B.sub_type='REFUND_FEE’ ,1,0)) from t;
方法三.select count(B.sub_type=‘REFUND_FEE’ or null) from t;
解释:
当select B.sub_type=‘REFUND_FEE’ 时:
如果sub_type为REFUND_FEE则返回1,
不空且不为REFUND_FEE否则返回0,
空时返回null。
所以B.sub_type=‘REFUND_FEE’ or null 只返回sub_type=‘REFUND_FEE’ 的,其余的都返回null ,而count(列名)时是不会统计null的个数的
注:count(*)会把null的个数也统计在内