现在数据是这个样子的select * from surface where TIMESTAMP>'2009-10-16 00:01:01' and TIMESTAMP<'2009-10-16 23:59:59' and nodeid=3 and id%10=0这个是我原来SQL语句,现在因为ID列无规则了所以这种SQL语句查不出东西来。ID列是自增主键
我想问一下这个改怎么查询啊?因为还要做筛选,我是想在MySQL这端做,不知道怎么做号,因为数据量会在几千条,还要考虑效率,还要考虑一下移植问题。。大侠们半磅忙了
解决方案 »
- 刷新页面,数据库查询就出错,求教各位大侠
- 跪求技术 指导 江湖救急啊 急! 急! 急! 急! 急! 急! 急! 急!
- 安装mysql出现的问题,请进来看看吧
- J2EE是什么?它包括哪些技术?
- Jbuilder9使用的一个问题。
- weblogic问题,急!!!
- jsp的问题
- java socket 和 VB scoket之间通讯的问题
- 自己参照文档写了个EJB简单的例子,但是总是提示错误,有经验的朋友进来帮忙看看...Exception in thread "main" java.lang.NoClassDefFoun
- how session bean access entity bean throngh local
- struts2 拦截器 获取请求中的参数~!怎么弄?送分题
- 报一个非常奇怪的错误,大家来看看··挺有意思的·
在查询语句最后加入,order by di 这样id就有规则了
如果是用的多的查询的话,可以给TIMESTAMP这列做成序列,这样的话可以提高查询的效率。
方式
还可以用隐藏列 rowno
id%10=0 改成 id%10=1
保证你可以查出来
现在数据是这个样子的 select * from surface where TIMESTAMP>'2009-10-16 00:01:01' and TIMESTAMP <'2009-10-16 23:59:59' and nodeid=3 and id%10=0 这个是我原来SQL语句,现在因为ID列无规则了所以这种SQL语句查不出东西来。 ID列是自增主键 and id%10=0是要查询所有事10 的整倍数的 id好么??要是想得到你截图的效果,可以改成and id%10>0或and id%10<>0 日期就象3楼说的那样…… 这样会有如图的数据
查不出数据是因为没有满足条件的数据!
你是想问怎么写sql性能好,还是想问怎么查询有数据?
用between and
我要用nodeid=3的查询同意时间还会有nodeid=1,nodeid=2 等等所以ID列相对于nodeid=3就是无规则的啦查询条件
nodeid,TIMESTAMP>'2009-10-16 00:01:01' and TIMESTAMP <'2009-10-16 23:59:59'这样的话能查出一天数据我要在查出之后的基础上做一个筛选每隔10条拿一个数据
如果确定数据只有几千条,那还用不着考虑查询优化。
不过也可以说一下你这几个条件的优化。在nodeid上建索引;TIMESTAMP用>、<做检索,不要用between and;id%10=0这个最麻烦,用“id%10”做条件时不使用索引,会影响效率,而且还没有可以替换的写法。
我是这么写的;