前言: 由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式.即同一个列中存储了多个属性值(具体结构见下表). 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果. 表数据: ID Value 1 tiny,small,big 2 small,medium 3 tiny,big 期望得到结果: ID Value 1 tiny 1 small 1 big 2 small 2 medium 3 tiny 3 big 总结: 这种方法的缺点在于,我们需要一个拥有连
1.给表添加列 ALTER TABLE supplier_seller ADD COLUMN company_id INT NULL COMMENT '供应主体id'; 默认情况下,添加的列会添加到最后一列. 如果要求添加到指定位置,语句如下: ALTER TABLE supplier_seller ADD COLUMN company_id INT NULL COMMENT '供应主体id' AFTER mdm_info_json; 如果想要添加到第一列,语句如下: ALTER TABLE s
count(*)通常是对主键进行索引扫描,count(列)不一定 count(*)是统计表中所有符合的记录总数,count(列)是计算表中所有符合的列的记录数 count的时候,如果没有where限制的话,mysql直接返回保存总的记录数,而有where限制的时候,总是要对mysql进行全表遍历 count(列)中的列如果是主键,则count(列)比count(*)快,否则,count(*)快 任何情况下,select count(*) from table是最优选择 尽量减少select co
mysql修改列 mysql增加列,修改列名.列属性,删除列语句 mysql修改表名,列名,列类型,添加表列,删除表列 alter table test rename test1; --修改表名 alter table test add column name varchar(10); --添加表列 alter table test drop column name; --删除表列 alter table test modify address char