mysql 行转列问题
这几天所作的工作涉及到数据库行转列的问题
记录一下出现的错误,以免以后再犯
举网上最通俗的例子吧
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82
想要的结果
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82
正确的写法
select name as 姓名,
max
(case when subject='语文' then result end) as 语文,
max
(case when subject='数学' then result end) as 数学,
max
(case when subject='物理' then result end) as 物理
from T1 group by
name
最开始写的时候不知道max
函数有什么用
而且也没有加
group by
最后的结果是
姓名 语文 数学 物理
张三 80
张三 90
张三 85
李四 85
李四 92
李四 82
发现结果不对,然后加了
group by语句
结果是
张三 80
李四 85
相关文档:
1 设置phpMyAdmin
Language:Chinese simplified (zh-utf-8)
MySQL 字符集:UTF-8 Unicode (utf8)
MySQL 连接校对 gbk_chinese_ci
2 创建数据库时
整理设置成 gbk_chinese_ci
3 用SQL建立表中
ENGINE=MyISAM DEFAULT CHARSET=gbk;
ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ;
4 检查表结构中
varcha ......
integer 或者 int
int 或者 java.lang.Integer
INTEGER
4 字节
long
long Long
BIGINT
8 字节
short
short Short
SMALLINT
2 字节
byte
byte Byte
TINYINT
1 字节
float
float Float
FLOAT
4 字节
double
double Double
DOUBLE
8 字节
b ......
将Excel数据导入MySql
1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。),假如存到“D:\data.txt”这个位置里。
2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令
load data local infile 'D:\data.txt' into table exceltomysql fields terminated ......
背景:某个系统的mysql数据库dnname采用默认的latin1字符集,系统升级需要将所有数据转换成utf-8格式,目标数据库为newdbname(建库时使用utf8)
方法一:
步骤一 命令行执行:mysqldump --opt -hlocalhost -uroot -p*** --default-character-set=lantin1 dbname > /usr/local/dbname.sql
步骤二 将 dbname.s ......