伊莉討論區

標題: 關於MYSQL範圍讀取[已解決] [打印本頁]

作者: han860    時間: 2016-9-2 01:14 PM     標題: 關於MYSQL範圍讀取[已解決]

提示: 作者被禁止或刪除 內容自動屏蔽
作者: alextang1030    時間: 2016-9-3 12:40 AM

我的想法是
你先從用戶那邊拿取他要的起點跟終點
再從資料庫裡拿出所有ID(只要ID)並按順序排好放array中(假設有可能不是按ID的大小來排順序)
然後用array_search 來找出起點的KEY跟終點的KEY
正向的就用FOR LOOP 從起點開始排到終點
取得新的正向ID ARRAY
反向的就先用FOR LOOP從起點開始往回到KEY0
取得一部份的反向ID ARRAY
再從總ARRAY 的END開始FOR LOOP回終點
那就可以取得剩下的ID順序放到反向ID ARRAY中

最後再去資料庫用ARRAY來拿東西就好了


以上是個人的看法,應該是有更好更簡單的
有勞其他大大幫忙了
作者: chevylin0802    時間: 2016-9-3 05:52 AM

example:

SELECT * FROM tablename WHERE id >= 4 AND id <= 8 ORDER BY  id DESC;

就可以得到8, 7, 6, 5, 4 的結果

但是如果要跨越原點的時候
就需要分成兩次
或者乾脆照樓上的方式做


作者: han860    時間: 2016-9-4 07:29 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: han860    時間: 2016-9-6 04:22 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chevylin0802    時間: 2016-9-6 05:31 PM

han860 發表於 2016-9-6 04:22 PM
感謝兩位大大的解說~~
問題已經解決了~~
多謝!!^^

有做出來就好
雖然不是最佳的解決方案
不過有總比沒有的好

MySQL其實有很多的功能並沒有被人們所使用到
比如VIEW的功能
比如stored procedure/user defined function的功能
比如trigger的功能等

但對於想要更進一步的深入
甚至可能考慮過參與外國企業的大型研發計劃的話
那麼就有必要更深入的去研究那些部份
畢竟資料庫那麼多個語法與功能被定義出來並不是擺好看的
只是國內多數開發資料庫的人貪快而不去深究這些東西
事實上我更相信有許多人連commit都沒用過
這其實都不是好事
因為嚴謹度不夠的開發
往往充斥著不少看不見的BUG






歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!