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/