看板 Database 關於我們 聯絡資訊
是要找出每個分類當中未有回應的文章, 各抓(最多)3筆當做代表? 第一道SQL: select distinct type from article where fid=0; 撈出type值, 再由host language(例如 PHP)透過迴圈控制, 將每個type 值逐一地代入到第二道SQL: select * from article where type=$type and fid=0 limit 0,3; 拆成兩道, 結構清楚邏輯簡單, 這就能夠達到目的. 以上僅供參考, 應該普遍會這麼用吧? 若要僅用一道SQL就達到目的 的話, 可能要用到mysql流程控制的語法, 就等高手來示範..XD ※ 引述《philgood (感覺好)》之銘言: : 小弟我用的是mysql 但遲遲沒辦法突破這個query : 我手上有一個文章的資料表 叫作 article : id fid type name : 1 0 1 a : 2 0 1 b : 3 0 1 c : 4 0 1 d : 5 0 2 e : 6 0 2 f : 7 0 2 g : 8 0 3 h : 9 0 3 i : 10 0 3 j : 11 0 3 k : 12 1 4 l : 13 1 4 m : 基本上,會依照type分群組, : 那目前可以看到type有1 2 3 4 總共4個分類。 : 那我今天想作一個頁面,他會根據fid取出所有子分類, : 並取出該分類底下的前3項資料,今天先預設fid為0。 : 所以他取出來的type 應該是1.2.3 : 而id 應該是從1到10 : 我想問說 有沒有辦法根據類別去取出最多3項的資料 : 也就是不要第4筆。 : 我目前只寫到下面這個query而已 就不知道怎麼繼續了... : SELECT * : FROM article : WHERE type IN (select distinct type from article where fid=0) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.151.184 ※ 編輯: bobju 來自: 58.115.151.184 (10/22 01:19)
philgood:我也想過 但是我想減少query的使用 不然用這招的話.... 10/22 01:19
philgood:有n個分類 就會要1+n次查詢...感覺有點沒效率 10/22 01:24
PsMonkey:我到覺得撈出來用前端程式判斷有幾個 type 可能比較快 10/22 08:23
rushcat:mysql不是也有StoredProcedure @"@? 10/22 12:31