我有一个包含超过390列的表。
我想算一下de value' Y'列表中有。
大多数列可能都有此值,有些则没有。
我不知道如何执行它,因为它有几列。
有没有办法执行它?
由于
答案 0 :(得分:1)
哇那很多列。
你必须用你选择的语言循环(伪代码):
while ($rows = mysql_query("SELECT * FROM TABLE")) {
foreach ($col in $rows) {
if ($col == 'Y') {
$count++;
}
}
}
print("Count: $count");
尝试规范化表结构可能是个好主意,这样你就不会在1个表中有这么多列
答案 1 :(得分:0)
这里有两种不同的sql方式,但是......你必须把列名放在
中 select Columns, count(*) From
(select Column1 as Columns from your_table where Column1 = 'Y'
union all
select Column2 as Columns from your_table where Column2 = 'Y'
union all
select Column3 as Columns from your_table where Column3 = 'Y'
union all
select Column4 as Columns from your_table where Column4 = 'Y'
union all
select Column5 as Columns from your_table where Column5 = 'Y'
union all
select Column6 as Columns from your_table where Column6 = 'Y')myTab
group by Column;
或
select value
from yourtable
unpivot
(
value
for col in (column1, column2, column3, column4,...etc)
) un
where col = 'Y'