Mysql里怎么获取某一项有哪些值 相当于将值放到map里
比如mysql里有一个table students
里面有一项是课程
里面有各种各样的课程 比如数学啊 语文啊 或其他的 我也不清楚具体有多少课程
我怎么统计出这项有多少值 每个值有多少num
student
name course
小张 语文
李四 数学
小王 音乐
老李 数学
相当于一个map 我可以用遍历的方法一一读取 然后记录
但是sql中有这样的查询语句不
查询出course里有3项 语文1个人 数学2个人 音乐一个人
统计出这项有多少值用
select distinct(course) from students;
每个值有多少num
select sum((case when course='语文' then 1 else 0 end)) as '语文',
sum((case when course='数学' then 1 else 0 end)) as '数学',
sum((case when course='音乐' then 1 else 0 end)) as '音乐'
from students;
顺着这个写。
用group by,1楼的对
SQL code:
select course,count(*)
from student
group by course
SQL code:
mysql> select * from student;
+------+--------+
| name | course |
+------+--------+
| 小张 | 语文 |
| 李四 | 数学 |
| 小王 | 音乐 |
| 老李 | 数学 |
+------+
相关问答:
我的Mysql 使用的时候 用dos建立的数据表 在dos中能显示出中文
但是在 其他的可视页面 和网页中都显示乱码 如何解决?
在mysql控制台:show variables like 'char%';贴结果出来看看。
mysql命令行模式下: ......
请高手指点,我对一张表查询后再更新,查询是子查询,报错:
You can't specify target table 'a_table' for update in from clause
完整SQL语句是
UPDATE a_table SET STATUS=0 WHERE ID=(SELECT MIN(ID) from a_tab ......
echo %~dp0
CD %~dp0
mysqld.exe --defaults-file=..\my.ini --console
pause
大家看看以上bat文件的意思,请大侠给个详细的解释啊。
这是启动mysql服务啊。
echo %~dp0
显示当前bat所在目录名
CD %~dp0
......
我在清理mysql的时候,一不留神将mysql(即data里的mysql文件夹)数据库给删掉了,隔了几个小时我重启了mysql软件,mysql就自动初始化了数据库,导致从删除mysql文件夹开始到重启这段时间的数据丢失,那位高手帮想想办 ......