Linux系统上,需要安装 Freetds 才能访问 SQL Server 服务
问题描述:
MySQL 中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了)
例:插入
insert into tb('url') values ('absc\eeee');
结果数据库里的内容是:absceeee(反斜杠没了呢)
在MySQL中创建函数时出现这种错误的解决方法:
set global log_bin_trust_function_creators=TRUE;
例:获取account_name字段中‘_’的个数
select length(account_name) - length(REPLACE (account_name, '_', '')) from user
PolarDB
UNIX时间戳 转换 为日期
from_unixtime(unix_timestamp,format)
参数:UNIX 时间戳返回值:字符串
from_unixtime(1506648322, '%Y-%m-%d %H:%i:%s')
MySQL提供了两个通配符与LIKE操作符一起使用:百分比 %和下划线_。
- percent(%)通配符:允许您匹配任何零个或多个字符的字符串。
- 下划线(_)通配符:允许您匹配任何单个字符。
select sum(score) from student where gender='boy' group by name having sum(score)>210;
其次,我们经常写的sql 就是 select count(a),sum(b) ....from tableName where ....
聚合函数都是在where 条件之前的,说明聚合函数的执行级别高于where。然后 where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,也就是在分组之前过滤数据,条件中不能包含聚和函数,使用where条件限制特定的行。
最后,having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚合函数,使用having 条件过滤特定的组,也可以使用多个分组标准进行分组。
关于 阿里云 RDS MySQL 排序分页查询数据错乱的原因和解决方案
1、某些时候MySQL 排序分页查询会出现数据错乱的情况 比如:
CREATE TABLE alarm_test ( id bigint(20) NOT NULL DEFAULT '0', detail varchar(255) CHARACTER SET utf8 NOT NULL, created_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
字段太多,超过了 行记录的 总容量,报错:
The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
解决方案:
把字段类型,修改为 text