作者lucky17 ( )
看板java
标题Re: [JSP ] 从MySQL读复选的统计资料
时间Thu Jun 30 21:04:05 2011
另一个想法,看可不可行 @@"
假设原本的表格是 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)
1F:推 caty1010:这招好酷~~ 06/30 22:17