mysql语句的简化:from中的临时表作为where中的条件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql语句的简化:from中的临时表作为where中的条件相关的知识,希望对你有一定的参考价值。
select * from
(select type,count(*) num from
(select m.type,count(*) num from toutticket otk,tronda r,tmovie m
where otk.uname='user2'
and otk.rid=r.aid
and r.mid=m.mid
group by uuid
)temp
group by type desc)res
where num =
(select max(num) from
(select type,count(*) num from
(select m.type,count(*) num from toutticket otk,tronda r,tmovie m
where otk.uname='user2'
and otk.rid=r.aid
and r.mid=m.mid
group by uuid
)temp
group by type desc)res)
;
上部分的res怎样写才可作为where num中的条件参数
你这个写的太哆嗦了,为什么要套那么多层没用的select,你这个无非要得出条数最多的那个type 所对应的行;
我不知道你用的什么数据库;
可以修改一下:
MySQL常用语句
基本查看及登录:
mysql -u用户 -p密码
show databases; ##查看数据库
use 库名; ##进入数据库
show tables; ##查看表
desc 表名; ##查看表的结构,表头表的操作:查,改,删,增
select 字段 from 表 \G; ##查询表中的所有数据记录
update 库名.表名 set 字段=新增 where 条件表达式; ##修改更新数据
delete from 库名.表名 where 条件表达式; ##删除数据记录
create database 库名; ##创建库
create table 库名.表名(字段); ##创建表
insert into 库名.表名 values(‘字段值‘,‘字段值‘); ##新增记录
drop table 库名.表名; ##删除表
drop database 库名; ##删除库mysql的权限管理
grant 权限列表 on 库名.表名 to 用户@‘客户机地址‘ identified by ‘密码‘; ##授权
show grants for 用户@‘客户机地址‘; ##查看权限
revoke 权限列表 on 库名.表名 from 用户@‘客户机地址‘; ##撤销授权
flush privileges; ##刷新权限
4.备份与恢复mysql
复制表到其他数据库下可直接使用
登录到mysql
/etc/init.d/mysqld stop ##停止服务
cd /usr/local/mysql/data ##Mysql服务的安装目录
cp -rf mysql/库名.表名 库名/ ##复制一个库下的表到另一库下
chown mysql:mysql 库名/ -R ##更改宿主和属组
chmod 755 库名 ##更改库权限,有执行的权限
chmod 660 库名/* ##更改表权限
/etc/init.d/mysqld start ##启动服务
登录mysql
use 库名; ##进入库
show tables; ##查看复制表是否生效
mysql的冷备份:
/etc/init.d/mysqld stop ##停止服务
tar Jcf /备份位置/备份名.tar.xz /usr/local/mysql/data ##备份数据库的库文件目录
mysql恢复:
tar Jxf /备份位置/备份名.tar.xz -C /root ##解压备份文件到指定目录
cd /root/usr/local/mysql/data ##进入到数据库的库文件目录
cp -rfp 恢复文件/ /usr/local/mysql/data ##选择需要恢复的库 -p不改变文件属性,若属性改 变则需要更改权限,上述“复制表”中有更改权限过程
/etc/init.d/mysqld start ##启动服务
mysql登录验证
show databases; ##数据已经恢复
热备份;mysqldump
netstat -utpln |grep 3306 ##确保mysql启动
mysqldump -u用户名 -p密码 --all-databases >/备份目录/备份名.sql #备份
mysqldump -u密码 -p用户名 --all-databases --lock-talbes=0 >/备份目录/备份名.sql ##不锁表备份
mysql -u用户名 -p密码 </备份目录/备份名.sql ##恢复
5.mysql忘记密码的解决方案:
vim /etc/my.cnf
[mysqld]
skip-grant-tables ##添加该行,跳过密码验证
:wq
/etc/init.d/mysqld restart
mysql ##登录后操作
update mysql.user set password=password("123123") where user="root"; ##修改root密码
exit
vim /etc/my.cnf
[mysqld]
#skip-grant-tables ##注释该行
:wq
/etc/init.d/mysqld restart
6.单独管理用户:
用户管理
mysql>use mysql;
mysql>create user 用户 identified by ‘密码‘; ##identified by 会将纯文本密码加密作为散列值存储
mysql>rename user 用户 to 用户名;##mysql 5之后可以使用,之前需要使用update 更新user表
mysql> set password for 用户名=password(‘密码‘); ##加密密码
mysql> update mysql.user set password=password(‘密码‘) where user=‘用户‘; ##单独修改某一用户密码
mysql> show grants for 用户名; ##查看用户权限
mysql> grant select on mysql.user to 用户名; ##赋予权限
mysql> revoke select on mysql.user from 用户名; ##如果权限不存在会报错
mysql>drop user 用户名; ##mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限
7.设置mysql5.5显示中文名:
vi /etc/my.cnf
[client]
default-character-set = utf8 ##5.4版本[client]和[mysqld]只输入这一行即可
[mysqld]
character-set-server = utf8
init_connect=‘SET NAMES utf8‘
:wq
/etc/init.d/mysqld restart
本文出自 “阿宇” 博客,请务必保留此出处http://xiaoayu.blog.51cto.com/12001978/1851546
以上是关于mysql语句的简化:from中的临时表作为where中的条件的主要内容,如果未能解决你的问题,请参考以下文章