MySql语句总结

增加多个列

增加多个列(column)在指定已存在的列(exit_column)后,赋默认值,指定注释。如果在首行添加,将“AFTER ..”换成“FIRST”。

ALTER TABLE `test_table` 
ADD COLUMN `column1` INT(11) DEFAULT -1 COMMENT 'commit1' AFTER `exit_column1`, 
ADD COLUMN `column2` INT(11) DEFAULT -1 COMMENT 'commit2' AFTER `exit_column2`;

更新表中字段使其与另一表中的字段一致

假设现在有两个表table_A和table_B如下,table_A可以看作table_B的等级映射。table_A.a_no = table_B.b_no,如果B表中b_level大于4的映射到A表中a_high_level=A,否则为B。

a_noa_high_level
no1B
no2A
b_nob_level
no11
no25

 

UPDATE table_a, table_b 
SET table_a.`a_high_level` = 'A'
WHERE table_b.`b_level`>4 
AND table_a.`a_no` = table_b.`b_no`

两个Unsigned字段做数值操作

如下sql报错:BIGINT UNSIGNED value is out of range

UPDATE table1 SET `column_a`= `column_b`-`column_c` 

在进行数值操作时,将UNSIGNED转换成SIGNED,改进后的sql为

UPDATE table1 SET `column_a`= CAST(`column_b` AS SIGNED)-CAST(`column_c` AS SIGNED);

查询多个字段重复的数据

查看表table_1种 column1,column2,column3重复的数据,使用IN即可,注意

  • 最外层的表需要起别名
  • 最外层的WHERE后面列需要加括号
SELECT * FROM `table_1` a WHERE (a.column1,a.column2,a.column3) IN(
SELECT column1,column2,column3 FROM `table_1` 
WHERE `is_delete` = 0
GROUP BY column1,column2,column3
HAVING COUNT(*)>1)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值