Re: [JSP ] 從MySQL讀複選的統計資料

看板java作者 ( )時間14年前 (2011/06/30 21:04), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
另一個想法,看可不可行 @@" 假設原本的表格是 tA, 另外有個對照表叫 tB tA values tB value name 125 1 狗 134A 2 貓 24B 3 鼠 2345A 4 兔 5 鳥 用 cross join 的話... select value, name, count(1) from tA cross join tB on tA.values like CONCAT( '%', tB.value, '%' ) group by value ps. 其中 CONCAT() 是 MySQL 的字串串接(concatenate)函式 ※ 引述《cklonger (22)》之銘言: : ※ 引述《s011990 (Simon)》之銘言: : : 在MySQL有四筆資料 : : 第一筆欄位值是125 : : 第二筆是134A : : 第三筆是24B : : 第四筆是2345A : : 想把欄位中的值讀出來 : : #假設1表示狗 2表示貓 3表示鼠 4表示兔 5表示鳥 : : A表示魚 B表示猴 : : 那希望能讀出是 : : 狗總共有 2筆資料 : : 貓總共有 3筆資料 : : 鼠總共有 2筆資料 : : 兔總共有 3筆資料 : : 鳥總共有 2筆資料 : : 魚總共有 2筆資料 : : 猴總共有 1筆資料 : : 之前有寫過單選的 不過複選的一直讓我很頭大 : : 有板友能幫個忙嗎 : : 謝謝呢 : 這不是該在這版回的問題 這是sql的問題 應該去database版問 : 不過因為很簡單我還是回一下 : 首先這個資料庫的表格設計有問題 : 你應該用多個欄位去存 1,2,3,4,5,a,b : 但是既然已經長成這樣就想辦法用sql解決 : 假設那個欄位叫answer table叫t1 : (select count(1) from t1 where answer like '%1%') union : (select count(1) from t1 where answer like '%2%') union : (select count(1) from t1 where answer like '%3%') : 用union 跟like就可以用sql解決 : 視需要可以用多個union -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.206.4 ※ 編輯: lucky17 來自: 220.139.206.4 (06/30 21:07)

06/30 22:17, , 1F
這招好酷~~
06/30 22:17, 1F
文章代碼(AID): #1E37H7Ij (java)
文章代碼(AID): #1E37H7Ij (java)