Am在PHP中使用SQL命令计算插入到website defacement
列中的值的数量。我想计算表的整个列中像attack_type
这样的单个值的出现。但是这里的列SELECT attack_type,
count(*) as number
FROM data_input_test
GROUP BY attack_type
包含不同的值,用逗号分隔,并且计数将整个列数据视为字符串。下面是我当前的SQL语句及其输出
我尝试用PHP爆炸print_r
/*rewrite your loop like this*/
for (var i = 0; i < myPathItems.length; i++) {
(function () {
var index = i;
myPathItems[index].filled = false;
myPathItems[index].stroked = true;
myPathItems[index].strokeWidth = 1;
myPathItems[index].strokeColor = doc.swatches.getByName("Cutter").color;
})();
}
这是上面语句的输出 生成:
https://drive.google.com/open?id=1TyRL_Mh0OOJWaCpFczxmBr34No9LUpzH
但是我想要的是:
https://drive.google.com/open?id=1eeA_1TCER0WMpZwSkBDMzRtRa8xihbZd
,依此类推。编辑上面想要的输出以显示我确切想要的。
关于stackoverflow和其他论坛的其他答案都无关紧要,或者正在使用regrex或以另一种方式创建新表。我不想这样做,因为我的托管有一些限制。我的托管不提供触发器的创建,regrex或临时表的创建
答案 0 :(得分:1)
我可能对此有解决方案,但不知道如何在此处申请。可能在这里:https://www.periscopedata.com/blog/splitting-comma-separated-values-in-mysql
请有人向我解释如何在此处申请相同的内容。
答案 1 :(得分:0)
如果您只想计算行中逗号分隔的值,则可以使用:
SELECT SUM(LENGTH(attack_type) - LENGTH(replace(attack_type, ',', '')) +1) AS TotalCount
FROM table_name;
答案 2 :(得分:0)
因此,我终于设法仅使用select来完成我的工作。仅当您的数据集有限或明确少于64个值时,此方法才有效。
union select 'Un-patched Vulnerable Software Exploitaion'as type, count(*) as number from data_input_test where find_in_set('Un-patched Vulnerable Software Exploitaion',attack_type)```
依次显示所有值
我知道这不是你应该怎么做,但正如传说所说的那样??