mysql常用数据库语句

本文介绍了解决MySQL中too many connections问题的方法,包括调整最大连接数、使用KILL命令释放连接等。同时涵盖了字符串处理技巧,如使用trim、length、concat等函数进行数据清洗和格式化。
摘要由CSDN通过智能技术生成

解决too many connections问题

select concat('KILL ',id,';') from information_schema.processlist

查看最大连接数

show variables like 'max_connections';

临时设置成500

set GLOBAL max_connections=500;

删除某列首位空格 - trim函数

update tableName set columnName = trim(columnName)
字符串截取

如: 将 "宾至如归:(bīnzhìrúguī)" 截取成 "宾至如归"

select left(columnName, 4) from tableName where id = 230;

计算字符串长度 - length函数

select * from tableName where length(columnName) > 12

字符串截取

示例: 截取  爱(ài)别(bié)离(lí)苦(kǔ) , 将中文和拼音分别截取出来

截取 爱别离苦

select CONCAT(left(columnName,1),
left(substring_index(columnName,')',-4),1),
left(substring_index(columnName,')',-3),1),
left(substring_index(columnName,')',-2),1))
from tableName
截取 ài bié lí kǔ

select CONCAT(
substring_index(substring_index(columnName,'(',-4),')',1),' ',
substring_index(substring_index(columnName,'(',-3),')',1),' ',
substring_index(substring_index(columnName,'(',-2),')',1),' ',
substring_index(substring_index(columnName,'(',-1),')',1)
)
from tableName


Error : You can't specify target table 'm' for update in FROM clause

原语句:

update idiom_info m, idiom_info_copy n
set m.spell = n.spell 
where m.idiom = n.idiom and m.id in(
select id from idiom_info where id not in(select id from idiom_info where spell like '% %')
)
更改后:

update idiom_info m, idiom_info_copy n
set m.spell = n.spell 
where m.idiom = n.idiom and m.id in(
select x.id from
(select id from idiom_info where id not in(select id from idiom_info where spell like '% %')) x
)
将in后面的语句外面包了一层, 将其作为一个临时表x, 再查询这个临时表的id


条件判断

select *,(CASE WHEN sex='1' THEN '男' WHEN sex='0' THEN '女' ELSE '保密' END) as sex_text
from user
order by sex_text DESC

行数

SELECT t.*, 
       @rownum := @rownum + 1 AS rank
  FROM YOUR_TABLE t, 
       (SELECT @rownum := 0) r

在进行数值加减的时候, 要注意到NULL的这种情况

1. 在设计初, 如果涉及到值加减, 需要将其默认值设置为0, 不要默认, 默认是NULL

2. 如果无法改变, 在查询时, 需要使用IFNULL函数将其转为0, 再进行计算, 因为:

NULL - 100 = NULL

100 - NULL = NULL

正确使用应该为: IFNULL(charge_total,0), 如果charge_total为NULL只, 则取值0

在与NULL进行CONCAT时, 结果都为NULL

SELECT CONCAT(100,NULL) FROM DUAL

查询数据库版本:

mysql> select @@version;


金额保留2位小数

select format(money/100,2) from dual


int和timestamp格式时间相互转换

select unix_timestamp(create_time) from jp_bank_info
1492677330

select from_unixtime('1492677330') from dual;
2017-04-20 16:35:30.000000


修改mysql用户密码

登录服务器的mysql客户端

# mysql -uroot -p

修改使用的数据库

mysql> use mysql;

更新用户root的密码

mysql> update user set password = password('newpassword') where user = 'root';

提交修改

mysql> flush privileges;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值