Mysql添加、删除、修改字段。修改、批量修改字段备注。批量修正数据。

博客围绕MySQL语句展开,介绍了添加、删除、修改字段名称和备注等操作,还提及将datetime类型字段改自动更新时间、查询字段重复次数。重点讲解了大量更新和修改字段的语句,以及批量更新数据、批量更新一个字段的方法,并给出相关转载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql语句添加字段:

alter table 表名 ADD 字段名  tinyint(1) DEFAULT NULL COMMENT '这是注释';

mysql语句删除字段:

alter table 表名 drop column is_placement ;

mysql语句修改字段名称

alter table 表名 change 修改前的字段名称  修改后的字段名称  smallint(5) unsigned DEFAULT NULL COMMENT '这是注释';

mysql语句修改字段备注:

ALTER TABLE 表名 MODIFY COLUMN 字段名 tinyint(1) DEFAULT NULL COMMENT '这是注释';

将datetime类型的字段改自动更新时间

ALTER TABLE 表名CHANGE 修改前的字段名称 修改后的字段名称 datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

查询某个字段重复出现的次数

select 字段名,count(*) as count from 表名 group by code having count>1;

如需大量的更新和修改字段,请用以下语句

mysql语句批量更新或修改注释时,直接生成更新语句,避免操作失误(只用修改表名和库名就可以)

SELECT     
concat(    
    'alter table ',     
    table_schema, '.', table_name,     
    ' modify column ', column_name, ' ', column_type, ' ',     
    if(is_nullable = 'YES', ' ', 'not null '),     
    if(column_default IS NULL, '',     
        if(    
            data_type IN ('char', 'varchar')     
            OR     
            data_type IN ('date', 'datetime', 'timestamp') AND column_default != 'CURRENT_TIMESTAMP',     
            concat(' default ''', column_default,''''),     
            concat(' default ', column_default)    
        )    
    ),     
    if(extra is null or extra='','',concat(' ',extra)),  
    ' comment ''', column_comment, ''';'    
) s    
FROM information_schema.columns    
WHERE table_schema = '库名'    
    AND table_name = '表名';

更新数据

一般更新是这样写的:

updata orders set payment='支付宝' where id=3’;

但是如果想批量修正数据,那么就可以这样写:

UPDATE orders SET
    pay_name = CASE pay_id
        WHEN 1 THEN '银行汇款/转帐'
        WHEN 2 THEN '支付宝'
        WHEN 3 THEN '微信'
		WHEN 4 THEN '支付宝-网银直连'
		WHEN 5 THEN '美悦宝'
		WHEN 6 THEN '快钱人民币网关'
		WHEN 7 THEN '银联在线支付'
    END
WHERE pay_id != 0 and pay_id != '' and pay_name = '';

以上sql的意思是:
更新orders表中pay_name字段

  • 如果pay_id = 1 则 pay_name = ‘银行汇款/转帐’
  • 如果pay_id = 2 则 pay_name = ‘支付宝’
  • 如果pay_id = 3 则 pay_name = ‘微信’
  • ··············

如果想一次修正多条语句,可以使用以下方法(批量修正数据)

UPDATE orders SET
    pay_name = CASE pay_id
        WHEN 1 THEN '银行汇款/转帐'
        WHEN 2 THEN '支付宝'
        WHEN 3 THEN '微信'
		WHEN 4 THEN '支付宝-网银直连'
		WHEN 5 THEN '美悦宝'
		WHEN 6 THEN '快钱人民币网关'
		WHEN 7 THEN '银联在线支付'
    END
    shipping_name= CASE shipping_id
        WHEN 1 THEN '邮政'
        WHEN 2 THEN '顺丰'
        WHEN 3 THEN '德邦'
    END
WHERE pay_id != 0 and pay_id != '' and pay_name = '' and  	shipping_id != 0 and shipping_id != '' and shipping_name = '';

以上语句的意思是:当“pay_name ”为“1”时,把这个字段的值改为“银行汇款/转帐”,以此类推!


批量更新一个字段:
将表中的某个字段的值都加50

update 表名 set 要修改的字段名 = 要修改的字段名+50;

批量修正数据的方法转载这位大佬的,谢谢大佬!(此大佬博客中还有更加全面的说明和方法,欢迎查看!)
https://www.awaimai.com/2103.html

Mysql语句批量更新或修改注释的语句,转载这位大佬的,感谢大佬!

blog.itpub.net/29254281/viewspace-1982180/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值