1.
使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误。
DELETE FROM tab1 WHERE id = ( SELECT MAX(id ) FROM tab1 );
ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM clause
针对“同一张表”这个限制,撇开效率不谈,多数情况下都可以通过多加一层select 别名表来变通解决
2.删除重复的数据并且保留一条
delete from cst_customer where cst_name in (select cst_name from (SELECT cst_name FROM cst_customer GROUP BY cst_name having COUNT(cst_name)>1)aa)
and cst_id not in (select cst_id from (select min(cst_id) cst_id from cst_customer GROUP BY cst_name having COUNT(cst_name)>1) qq);
3.SELECT * FROM `cst_customer` order by if(cst_id=3,0,1),cst_id;
可以将cst_id=3放在最前面,其他按照排序
4.SELECT * FROM `cst_customer` order by field(cst_name,'wsn','4','3','a');
会将'wsn','4','3','a'按照顺序在最后展示
5.select REPLACE(cst_name,'-','.') from cst_customer
查询结果将cst_name 字段中的'-'替换为'.'
6. alter table t_resource add attachment_url VARCHAR(1000) Not null comment "附件url";
添加字段 comment 注释 字符集、排序规则有默认的
7.insert into aa( )时如果 aa里少写个字段 字段如果可为null没问题,不可为null报错