Mysql 问题汇总

一、mysql 语句分析与优化
详解
二、自动更新创建时间和更新时间
自动创建时间 NOT NULL DEFAULT CURRENT_TIMESTAMP
自动创建时间和自动更新 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

  CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

创建时会自动生成创建时间create_time和更新时间update_time

INSERT INTO test (name) VALUES ('aa'),('bb'),('cc');

更新数据时会自动更新update_time

UPDATE test SET name = 'ab' WHERE id = 1;

三、查询
行转列 GROUP_CONCAT

select  reg_source,count(id) from (
 select  reg_source,user.uuid as id
  from user
  left join device_info on  user.uuid=device_info.`user_id` AND grant_by=0
  left join product on  product.code=device_info.`product_code`
  where
  user.`country`="US" 
 group by reg_source,user.uuid
 having ( GROUP_CONCAT(appliance,',') not like"%Cleaning%" or GROUP_CONCAT(appliance,',')  is null)
)   tmp
group by reg_source

spark sql

select  reg_source,count(id) from (
  select  reg_source,user.uuid as id ,concat_ws(',',collect_list(appliance)) as   appliance_total
   from user
   left join device_info on  user.uuid=device_info.`user_id` AND grant_by=0
   left join product on  product.code=device_info.`product_code`
   where
   user.`country`="US"
  group by reg_source,user.uuid
  having (concat_ws(',',collect_list(appliance)) not like"%Cleaning%" or concat_ws(',',collect_list(appliance))  is null)
)  tmp
group by reg_source

四、自增长key的0值
主键是自增长时,如果插入语句的key是0或者null,mysql会自动生成一个key
自增长和uuid是优缺点以及使用场景

五、mysql8可视化工具连接问题
Authentication plugin ‘caching_sha2_password’ cannot be loaded
原因
不是客户端的原因,是MySQL兼容问题,需要修改数据库的认证方式
MySQL8.0版本默认的认证方式是caching_sha2_password
MySQL5.7版本则为mysql_native_password。

解决办法
打开系统偏好设置,找到mysql,点击Initialize Database。
输入你的密码。
选择‘Use legacy password‘。
重启mysql服务。
重新使用工具链接数据库

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值