mysql数据库详解(五):日常开发收集的问题点

作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)

1、存在则更新,不存在则添加

insert into table_name values (...)
ON DUPLICATE KEY UPDATE 需要更新的字段=值,,

需要在表设置唯一索引,当唯一索引值重复就更新,不重复就插入
2、order by
排序,desc倒序排列 asc默认正序排列,如果想要多列排序,则以逗号分开 order by name desc, age asc
3、条件判断里,如果参数是集合,不能判断集合!=‘’,只能判断list.size>0
如果需要判断参数是否等于某个字符串,字符串必须用双引号或者’’.toString()
<if test=“list!=null and list.size>0”>
And …

<if test=‘name==“Tag”’>
And …

4、sum和count的区别
sum在没有查询出结果是为null
count在没有查询结果为0
5、group_concat()和concat()函数
group_concat()可以将所有的结果以逗号分割,然后结果就是一个字符串
concat()是把字段连接起来,但是结果是一个集合
注意:group_concat()在结果长度太长时,会截取部分数据,导致结果不准确。
6、查询表中某个字段最长的数据
select max(char_length(log_info)) from ord_log_new
7、length()和char_length的区别
前者是字节长度,后者是字符长度
8、内置函数
YEAR(字段) MONTH(字段) DAY(字段)查询字段的年月日
TIMESTAMPDIFF(day/month/year,字段,now())获取某个字段与当前时间年月日的差值
9、Linux连接mysql
mysql -h host -u user -p
Enter password: ********
之前遇到一个问题,数据库的服务器没有配置测试环境的白名单,导致服务启动没有报错,因为两台机器是通的,但是就是查不出数据。
10、恢复误删除的数据
1.进入mysql的bin目录,根据条件把binlog导出,

./mysqlbinlog /www/server/data/mysql-bin.000033 --start-datetime="2020-08-01 17:00:00" --stop-datetime="2020-08-01 20:10:00" --base64-output="decode-rows" -v -r /data/time2.sql

因为binlog的原始文件是看不懂的,所以转出文件转出sql格式–base64-output=“decode-rows” -v
2.将文件筛选表然后输出到文件 cat /data/time.sql | grep blade_dict >> /data/2.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值