前端问个 sql,进来打救一下。

2014-03-08 17:24:28 +08:00
 coolicer
要用sql统计一台机器的情况,现在sql查出一堆数据:

xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx

xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx
xxx 10086 xx xx xxx xx

xxx 10087 xx xx xxx xx
xxx 10087 xx xx xxx xx
xxx 10087 xx xx xxx xx
xxx 10087 xx xx xxx xx
xxx 10087 xx xx xxx xx
xxx 10087 xx xx xxx xx
xxx 10087 xx xx xxx xx

我现在怎么根据 10086和10087这些信息分页。10086代表查出这台10086机器的所有信息,没怎么用sql,前端你懂的。现在硬头皮上。

*现在是用order by排序后所呈现的,我想按这个id把信息分好,然后我再做统计。
3809 次点击
所在节点    程序员
19 条回复
jsonline
2014-03-08 17:26:30 +08:00
不要摸黑前端
coolicer
2014-03-08 17:27:51 +08:00
@jsonline = =,好吧,我比较菜
judasnow
2014-03-08 17:32:56 +08:00
select * from `your table name` where `10086那一列的属性名` = '10086[7]' limit 0, 10(页数)
coolicer
2014-03-08 17:36:07 +08:00
@judasnow 上面的那些是我联2个表查出来的,不是直接表里的数据。
zzNucker
2014-03-08 17:42:58 +08:00
一样的啊,union出来的结果也可以limit的。
coolicer
2014-03-08 17:52:31 +08:00
你们看清楚问题,上面的结果是2张表中查出来的。

我现在的问题是,比如10086有20条,10087只有10条。我每页只显示一个机器,我怎么根据10086,10087分页。

我很有诚意,不要骂我。
kingme
2014-03-08 17:54:27 +08:00
才刚刚接触SQL,有心无力
coolicer
2014-03-08 17:55:30 +08:00
@kingme 我也差不多。读书时只学过点语法,现在就要实干。
jsonline
2014-03-08 18:09:56 +08:00
把group 和 orderby 结合
jsonline
2014-03-08 18:11:22 +08:00
其实没看懂你的需求是什么,你举个栗子吧
zzNucker
2014-03-08 18:12:02 +08:00
说实话我觉得你真的没表达清楚意思,你数据都取出来了,要怎么分页不是你前端的事情吗。。。 或者说你要的是把10086和10087的数据分开来,那你后端用关联数组分一下不就行了?
jsonline
2014-03-08 18:14:52 +08:00
@zzNucker 同感。
sobigfish
2014-03-08 19:10:55 +08:00
就是数据源里有10087,你前端不会用js把10087分页?
jimmyrui
2014-03-08 21:59:48 +08:00
小白路过。。。
select x 1 ,‘ ’ 2 from xxx where x<10086
union all
select '' 1,x 2 from xxx where x>10087
jimmyrui
2014-03-08 22:20:14 +08:00
貌似不对,小白在路过
select a.a,b.b
from
(select x a,' ' b from xxx where x<10086) a,
(select ' ' a,x b from xxx where x>10087) b
zhenglee
2014-03-08 23:00:42 +08:00
先说表结构 再说需求
mcfog
2014-03-09 17:00:46 +08:00
线上有写入的db上直接联表查询是很危险的

如果是统计需求的话,最好是定时有脚本吧数据dump到另外的db机器,那么这个dump的过程可以把数据按照统计的要求处理好。

回到问题,联表无论是join还是别的什么方式都是可以加条件的,手册里很容易找到,时髦一点的还可以用视图之类的机制
niseter
2014-03-09 21:56:20 +08:00
@coolicer 那就之前建一个表 ,CREATE table tmp as SELECT........,然后拿创建出来的tmp表分页就容易多了,
dong3580
2014-03-10 14:21:07 +08:00
把group 和 orderby 结合 懒得给你写了,w3school怎么样,看看吧.
最好不要联合查询,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/103434

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX