от
Я использую команду SQL в PHP для подсчета количества значений, вставленных в столбец с именем
attack_type
. Я хочу посчитать вхождение отдельных значений, таких как
website defacement
во весь столбец таблицы. Но здесь столбец
attack_type
содержит различные значения, разделенные запятой, и счетчик обрабатывает данные всего столбца как строку. Ниже мой текущий оператор SQL с его выводом Я пытался взорвать print_r в PHP
SELECT attack_type, 
       count(*) as number 
FROM data_input_test 
GROUP BY attack_type
Вот результат вышеприведенного утверждения Генерация: https://drive.google.com/open?id=1TyRL_Mh0OOJWaCpFczxmBr34No9LUpzH Но то, что я хочу, это: https://drive.google.com/open?id=1eeA_1TCER0WMpZwSkBDMzRtRa8xihbZd и так далее. Вышеуказанный желаемый результат отредактирован, чтобы показать, что именно я хочу Другие ответы на stackoverflow и на других форумах либо неактуальны, либо используют regrex или создание новой таблицы тем или иным способом. Чего я не хочу, так как мой хостинг имеет некоторые ограничения. Мой хостинг не обеспечивает создание триггеров, регрекс или создание временных таблиц              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

3 Ответы

0 голосов
от
У меня может быть решение для этого, но я не знаю, как подать заявку здесь. Возможно здесь: https://www.periscopedata.com/blog/splitting-comma-separated-values-in-mysql Пожалуйста, кто-нибудь объяснит мне, как применить то же самое здесь.     
0 голосов
от
Если вы просто хотите посчитать значения через запятую в строках, вы можете использовать:   ВЫБЕРИТЕ СУММУ (ДЛИНА (тип атаки) - ДЛИНА (заменить (тип атаки, ',', '')) 1) AS TotalCount      FROM table_name     
0 голосов
от
Поэтому я наконец-то поработал, чтобы выполнить свою работу, используя только выбор. Это работает, только если у вас есть конечный набор данных или, в частности, менее 64 значений. Измените тип данных столбца на «установленный» тип. И введите ваши установленные значения. Теперь используйте функции select, count, find_in_set и union в sql. Пример: выберите тип «Дефект веб-сайта», count () в качестве числа из data_input_test, где объединение find_in_set («Дефект веб-сайта», тип атаки) как «тип незащищенного уязвимого программного обеспечения», count () в качестве номера из data_input_test, где find_in_set ( «Непропатченный уязвимость программного обеспечения», attack_type) и т. Д. Для всех ваших ценностей Я знаю, что это не то, что нужно делать, а, как гласят легенды, это работает.     
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...