sql
海拉姆
这个作者很懒,什么都没留下…
展开
-
mysql简单实现查询结果添加序列号
select (@i:=@i+1) as i,table_name.* from table_name,(select @i:=0) as it转载 2017-06-07 10:35:45 · 1179 阅读 · 0 评论 -
如何交叉取一个表的数据
有这样一个需求,先说下表结构,这个表里有帖子信息和问答信息,1对1或者1对多。type 1是帖子信息类型 2 是问答类型CREATE TABLE `wenda` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `type` int(4) DEFAULT NULL, `tieziI原创 2017-06-07 12:47:41 · 1631 阅读 · 0 评论 -
关于SQL表设计和查询的思考
1、了解sql设计范式,不要求严格遵守,但胡乱设计也不好2、在建表之初要考虑后期业务,需要哪些功能,表结构能否实现业务操作及对效率是否有影响此业务不仅仅本身增删改查,还有涉及关联其他业务3、在建表之初同时要考虑读和写的操作,读写是否频繁?是否可以把读和写的字段拆成两个表?4、该添加索引的位置添加索引,索引不宜过多,也不要一个没有。添加索引之后用expla原创 2017-06-07 10:24:58 · 1199 阅读 · 0 评论 -
SQL特殊案例
1、分组,取分组后最大id的数据select s.id from student s where s.id >= (select max(id) from student where class = s.class);没有使用group by,但通过条件和子查询变相实现了分组,且更灵活2、大数据量查询,如百万条按普通sqlselect id from order limit 9原创 2017-06-13 10:05:19 · 382 阅读 · 0 评论 -
详解数据库中的视图、临时表
1、视图,临时表的概念2、视图和临时表的区别3、优缺点一、1、视图 视图是由从数据库的基本表中选出来的数据组成的逻辑窗口,它与基本表不同的是,视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基表中。所以基表中的数据如果发生改变,从视图中查询出的数据也随之改变。 视图是一个虚表,他是通过执行S转载 2017-07-07 11:16:21 · 998 阅读 · 0 评论 -
update的where中如何做sum并判断
update table_name set status = 2 where #{cnum} = (select v.cSum from (原创 2017-09-15 17:14:49 · 1629 阅读 · 0 评论 -
sql语句无错误 order by 和limit一起用数据查询不准有重复
如sql无错误,但总是查询不准,有重复。并且去掉order by只保留limit数据就准确,原因在于mysql种order by和limit一起用,当order by有多条相同值时,mysql优化之后存在陷阱。解决方案,order by yourziduan,id 添加个其他字段辅助排序。参考http://blog.csdn.net/qiubabin/article/details/7转载 2017-10-09 16:44:13 · 2268 阅读 · 0 评论