[SQL ] M$SQL 實作 limit 疑問
我是新手我是新手,請不要捅我太大力拜託
由於客戶用該死的〔昏倒伺服二千專業〕所以必須使用 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)
推
02/05 20:57, , 1F
02/05 20:57, 1F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章