Re: [JSP ] 從MySQL讀複選的統計資料
另一個想法,看可不可行 @@"
假設原本的表格是 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
討論串 (同標題文章)