作者jsu (右持滑鼠左打键盘)
看板Database
标题[SQL ] M$SQL 实作 limit 疑问
时间Mon Feb 5 17:12:46 2007
我是新手我是新手,请不要捅我太大力拜托
由於客户用该死的〔昏倒伺服二千专业〕所以必须使用 M$SQL
要制作简易的搜寻,在将结果列出时遇到问题
一大堆资料当然不可能一次全列出,通常做法是 limit
举例,都是取第 40 ~ 50 笔资料
MySQL statement:
select *
from <table>
where <field> = <some rules>
limit <40>, <50>
order by <order> desc
M$SQL statement:
select *
from (select top <10> <field1>, <field2>...
from (select top <50> <field1>, <field2>...
from <table>
where <field> = <some rules>
order by <order> desc) as newtable1
order by <order> asc) as newtable2
order by <order> desc
相信大家看到这个指令都昏倒了,请原谅,小弟是新手
再笨的人也知道,丢一个 sql statement 却有了
三次的 selects 跟三次的 order-bys
效能自然是可笑无比了,同样功能在我的烂 BSD 上效能差达十倍有余
〔我知道我硬干是不对的 ~_~ 〕
勉强以这样的原则写出来的程式真可是奇丑无比
毕竟要动态增减一堆有的没有的条件
在不动用 store procedure 的情况下,想请教有什麽正规的做法吗?
--
This posting is provided "AS IS" with no warranties, and confers no rights.
--
※ 编辑: jsu 来自: 71.197.134.121 (02/05 17:13)
1F:推 retsamsu:整个limit语法只有里面两个select是必须的,外面那个 02/05 20:57